Provided by: rex_1.3.3-1_all bug

NAME

       Rex::Commands::User - Manipulate users and groups

DESCRIPTION

       With this module you can manage user and groups.

SYNOPSIS

        use Rex::Commands::User;

        task "create-user", "remoteserver", sub {
          create_user "root",
            uid         => 0,
            home        => '/root',
            comment     => 'Root Account',
            expire      => '2011-05-30',
            groups      => [ 'root', '...' ],
            password    => 'blahblah',
            system      => 1,
            create_home => TRUE,
            ssh_key     => "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQChUw...";
        };

EXPORTED FUNCTIONS

   account($name, %option)
       Manage user account.

        account "krimdomu",
          ensure         => "present",  # default
          uid            => 509,
          home           => '/root',
          comment        => 'User Account',
          expire         => '2011-05-30',
          groups         => [ 'root', '...' ],
          password       => 'blahblah',
          crypt_password => '*', # on Linux, OpenBSD and NetBSD
          system         => 1,
          create_home    => TRUE,
          ssh_key        => "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQChUw...";

       There is also a no_create_home option similar to create_home but doing the opposite. If
       both used, create_home takes precedence as it the preferred option to specify home
       directory creation policy.

       If none of them are specified, Rex follows the remote system's home creation policy.

       The crypt_password option specifies the encrypted value as found in /etc/shadow; on Linux
       special values are '*' and '!' which mean 'disabled password' and 'disabled login'
       respectively.

   create_user($user => {})
       Create or update a user.

   get_uid($user)
       Returns the uid of $user.

   get_user($user)
       Returns all information about $user.

   user_groups($user)
       Returns group membership about $user.

   user_list()
       Returns user list via getent passwd.

        task "list_user", "server01", sub {
          for my $user (user_list) {
            print "name: $user / uid: " . get_uid($user) . "\n";
          }
        };

   delete_user($user)
       Delete a user from the system.

        delete_user "trak", {
          delete_home => 1,
          force     => 1,
        };

   lock_password($user)
       Lock the password of a user account. Currently this is only available on Linux (see passwd
       --lock).

   unlock_password($user)
       Unlock the password of a user account. Currently this is only available on Linux (see
       passwd --unlock).

   create_group($group, {})
       Create or update a group.

        create_group $group, {
          gid => 1500,
          system => 1,
        };

   get_gid($group)
       Return the group id of $group.

   get_group($group)
       Return information of $group.

        $info = get_group("wheel");

   delete_group($group)
       Delete a group.