Provided by: rex_1.6.0-1_all
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, shell => '/bin/bash', 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, shell => '/bin/bash', 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.