Users

See also
fabtools.require.users
fabtools.user.exists(name)[source]
Check if a user exists.
fabtools.user.create(name, comment=None, home=None, create_home=None, skeleton_dir=None, group=None, create_group=True, extra_groups=None, password=None, system=False, shell=None, uid=None, ssh_public_keys=None, non_unique=False)[source]
Create a new user and its home directory.
If create_home is None (the default), a home directory will be created for normal users, but not for system users. You can override the default behaviour by setting create_home to True or False.
If system is True, the user will be a system account. Its UID will be chosen in a specific range, and it will not have a home directory, unless you explicitely set create_home to True.
If shell is None, the user’s login shell will be the system’s default login shell (usually /bin/sh).
ssh_public_keys can be a (local) filename or a list of (local) filenames of public keys that should be added to the user’s SSH authorized keys (see fabtools.user.add_ssh_public_keys()).
Example:
import fabtools if not fabtools.user.exists(‘alice’): fabtools.user.create(‘alice’) with cd(‘/home/alice’): # …
fabtools.user.modify(name, comment=None, home=None, move_current_home=False, group=None, extra_groups=None, login_name=None, password=None, shell=None, uid=None, ssh_public_keys=None, non_unique=False)[source]
Modify an existing user.
ssh_public_keys can be a (local) filename or a list of (local) filenames of public keys that should be added to the user’s SSH authorized keys (see fabtools.user.add_ssh_public_keys()).
Example:
import fabtools if fabtools.user.exists(‘alice’): fabtools.user.modify(‘alice’, shell=’/bin/sh’)
fabtools.user.homedirectory(_name)[source]
Get the absolute path to the user’s home directory
Example:
import fabtools home = fabtools.user.homedirectory(‘alice’)
**fabtools.user.local_home_directory(_name=’’
)[source]
Get the absolute path to the local user’s home directory
Example:
import fabtools local_home = fabtools.user.local_home_directory()
fabtools.user.authorizedkeys(_name)[source]
Get the list of authorized SSH public keys for the user
fabtools.user.addssh_public_key(_name, filename)[source]
Add a public key to the user’s authorized SSH keys.
filename must be the local filename of a public key that should be added to the user’s SSH authorized keys.
Example:
import fabtools fabtools.user.add_ssh_public_key(‘alice’, ‘~/.ssh/id_rsa.pub’)
fabtools.user.addssh_public_keys(_name, filenames)[source]
Add multiple public keys to the user’s authorized SSH keys.
filenames must be a list of local filenames of public keys that should be added to the user’s SSH authorized keys.
Example:
import fabtools fabtools.user.add_ssh_public_keys(‘alice’, [ ‘~/.ssh/id1_rsa.pub’, ‘~/.ssh/id2_rsa.pub’, ])
fabtools.user.addhost_keys(_name, hostname)**[source]
Add all public keys of a host to the user’s SSH known hosts file