Rex::Commands::User(3) 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.