class AutomateIt::AccountManager
AccountManager
¶ ↑
The AccountManager
provides a way of managing system accounts, such as Unix users and groups.
Public Instance Methods
Add groupname
if it doesn’t exist. Options:
-
:members –
Array
of usernames to add as members. -
:gid – Group ID to use. Default is to find an unused id.
# File lib/automateit/account_manager.rb, line 81 def add_group(groupname, opts={}) dispatch(groupname, opts) end
Add groups
(array of groupnames) to user
.
# File lib/automateit/account_manager.rb, line 58 def add_groups_to_user(groups, user) dispatch(groups, user) end
Add the username
if not already created.
Options:
-
:description – User’s full name. Defaults to username.
-
:home – Path to user’s home directory. If not specified, uses system default like “/home/username”.
-
:create_home – Create homedir. Defaults to true.
-
:groups –
Array
of group names to add this user to. -
:shell – Path to login shell. If not specified, uses system default like “/bin/bash”.
-
:uid – Fixnum user ID for user. Default chooses an unused id.
-
:gid – Fixnum group ID for user. Default chooses same gid as uid.
Example:
add_user("bob", :description => "Bob Smith")
# File lib/automateit/account_manager.rb, line 42 def add_user(username, opts={}) dispatch(username, opts) end
Add users
(array of usernames) to group
.
# File lib/automateit/account_manager.rb, line 93 def add_users_to_group(users, group) dispatch(users, group) end
Find a group. Method returns a query helper which takes a groupname
as an index argument and returns a Struct::Group entry as described in Etc::getgrent if the group exists or a nil if not.
Example:
groups["root"] # => #<struct Struct::Group name="root"... groups["does_not_exist"] # => nil
# File lib/automateit/account_manager.rb, line 76 def groups() dispatch() end
Array
of groupnames this user is a member of.
# File lib/automateit/account_manager.rb, line 99 def groups_for_user(query) dispatch(query) end
Does group
exist?
# File lib/automateit/account_manager.rb, line 90 def has_group?(group) dispatch(group) end
Is user
present?
# File lib/automateit/account_manager.rb, line 55 def has_user?(user) dispatch(user) end
Invalidate system cache for database
. The database
can be either :users or :groups. This is necessary on operating systems that lack logic to notify their caching system that an entry changed. If the OS doesn’t need invalidation, will do nothing and return false.
This method is primarily for the sake of driver authors, recipe authors will probably never need to use this.
# File lib/automateit/account_manager.rb, line 13 def invalidate(database) dispatch_safely(database) end
Change the password
for the user
.
# File lib/automateit/account_manager.rb, line 64 def passwd(user, password, opts={}) dispatch(user, password, opts) end
Remove groupname
if it exists.
# File lib/automateit/account_manager.rb, line 87 def remove_group(groupname, opts={}) dispatch(groupname, opts) end
Remove groups
(array of groupnames) from user
.
# File lib/automateit/account_manager.rb, line 61 def remove_groups_from_user(groups, user) dispatch(groups, user) end
Remove the username
if present.
Options:
-
:remove_home – Delete user’s home directory and mail spool. Default is true.
# File lib/automateit/account_manager.rb, line 52 def remove_user(username, opts={}) dispatch(username, opts) end
Remove users
(array of usernames) from group
.
# File lib/automateit/account_manager.rb, line 96 def remove_users_from_group(users, group) dispatch(users, group) end
Find a user account. Method returns a query helper which takes a username
as an index argument and returns a Struct::Passwd entry as described in Etc::getpwent if the user exists or a nil if not.
Example:
users["root"] # => #<struct Struct::Passwd name="root"... users["does_not_exist"] # => nil
# File lib/automateit/account_manager.rb, line 25 def users() dispatch() end
Array
of usernames in group.
# File lib/automateit/account_manager.rb, line 102 def users_for_group(query) dispatch(query) end
Hash
of usernames and the groupnames they’re members of.
# File lib/automateit/account_manager.rb, line 105 def users_to_groups() dispatch() end