NAME

Beam::Runnable::AllowUsers - Only allow certain users to run a command

VERSION

version 0.016

SYNOPSIS

### In a Runnable module
package My::Runnable::Script;
use Moo;
with 'Beam::Runnable', 'Beam::Runnable::AllowUsers';
has '+allow_users' => ( default => [ 'root' ] );
sub run { }

### In a container config file
runnable:
    $class: My::Runnable::Script
    $with:
        - 'Beam::Runnable::AllowUsers'
    allow_users:
        - root
        - doug

DESCRIPTION

This role checks to ensure that only certain users can run a command. If an unauthorized user runs the command, it dies with an error instead.

NOTE: This is mostly a demonstration of a Beam::Runnable role. Users that can write to the configuration file can edit who is allowed to run the command, and there are other ways to prevent access to a file/command.

ATTRIBUTES

allow_users

An array reference of user names that are allowed to run this task.

METHODS

run

This role wraps the run method of your runnable class to check that the user is authorized.

SEE ALSO

Beam::Runnable, "getpwuid" in perlfunc, "$>" in perlvar

AUTHOR

Doug Bell <preaction@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by Doug Bell.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.