Class: AutomateIt::AccountManager
- Inherits:
-
Plugin::Manager
- Object
- Common
- Plugin::Base
- Plugin::Manager
- AutomateIt::AccountManager
- Defined in:
- lib/automateit/account_manager.rb
Overview
AccountManager
The AccountManager provides a way of managing system accounts, such as Unix users and groups.
Defined Under Namespace
Classes: BaseDriver, Etc, NSCD, POSIX, PasswdExpect, PasswdPTY
Constant Summary
Constants included from Constants
Constants::HELPERS_DIR, Constants::INSTALL_DIR, Constants::PERROR, Constants::PEXEC, Constants::PNOTE, Constants::WARNING_BOILERPLATE
Instance Attribute Summary
Attributes inherited from Plugin::Manager
Attributes inherited from Common
Instance Method Summary collapse
-
#add_group(groupname, opts = {}) ⇒ Object
Add
groupname
if it doesn’t exist. -
#add_groups_to_user(groups, user) ⇒ Object
Add
groups
(array of groupnames) touser
. -
#add_user(username, opts = {}) ⇒ Object
Add the
username
if not already created. -
#add_users_to_group(users, group) ⇒ Object
Add
users
(array of usernames) togroup
. -
#groups ⇒ Object
Find a group.
-
#groups_for_user(query) ⇒ Object
Array of groupnames this user is a member of.
-
#has_group?(group) ⇒ Boolean
Does
group
exist?. -
#has_user?(user) ⇒ Boolean
Is
user
present?. -
#invalidate(database) ⇒ Object
Invalidate system cache for
database
. -
#passwd(user, password, opts = {}) ⇒ Object
Change the
password
for theuser
. -
#remove_group(groupname, opts = {}) ⇒ Object
Remove
groupname
if it exists. -
#remove_groups_from_user(groups, user) ⇒ Object
Remove
groups
(array of groupnames) fromuser
. -
#remove_user(username, opts = {}) ⇒ Object
Remove the
username
if present. -
#remove_users_from_group(users, group) ⇒ Object
Remove
users
(array of usernames) fromgroup
. -
#users ⇒ Object
Find a user account.
-
#users_for_group(query) ⇒ Object
Array of usernames in group.
-
#users_to_groups ⇒ Object
Hash of usernames and the groupnames they’re members of.
Methods inherited from Plugin::Manager
#[], abstract_manager, alias_methods, #available?, #default, #default=, #dispatch, #dispatch_safely, #dispatch_safely_to, #dispatch_to, driver_classes, #driver_for, #driver_suitability_levels_for, inherited, #instantiate_drivers, #setup
Methods inherited from Plugin::Base
Methods inherited from Common
#initialize, #log, #nitpick, #noop, #noop=, #noop?, #preview, #preview=, #preview?, #preview_for, #setup, #superuser?, #writing, #writing=, #writing?
Constructor Details
This class inherits a constructor from AutomateIt::Common
Instance Method Details
#add_group(groupname, opts = {}) ⇒ Object
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.
81 |
# File 'lib/automateit/account_manager.rb', line 81 def add_group(groupname, opts={}) dispatch(groupname, opts) end |
#add_groups_to_user(groups, user) ⇒ Object
Add groups
(array of groupnames) to user
.
58 |
# File 'lib/automateit/account_manager.rb', line 58 def add_groups_to_user(groups, user) dispatch(groups, user) end |
#add_user(username, opts = {}) ⇒ Object
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")
42 |
# File 'lib/automateit/account_manager.rb', line 42 def add_user(username, opts={}) dispatch(username, opts) end |
#add_users_to_group(users, group) ⇒ Object
Add users
(array of usernames) to group
.
93 |
# File 'lib/automateit/account_manager.rb', line 93 def add_users_to_group(users, group) dispatch(users, group) end |
#groups ⇒ Object
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
76 |
# File 'lib/automateit/account_manager.rb', line 76 def groups() dispatch() end |
#groups_for_user(query) ⇒ Object
Array of groupnames this user is a member of.
99 |
# File 'lib/automateit/account_manager.rb', line 99 def groups_for_user(query) dispatch(query) end |
#has_group?(group) ⇒ Boolean
Does group
exist?
90 |
# File 'lib/automateit/account_manager.rb', line 90 def has_group?(group) dispatch(group) end |
#has_user?(user) ⇒ Boolean
Is user
present?
55 |
# File 'lib/automateit/account_manager.rb', line 55 def has_user?(user) dispatch(user) end |
#invalidate(database) ⇒ Object
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.
13 |
# File 'lib/automateit/account_manager.rb', line 13 def invalidate(database) dispatch_safely(database) end |
#passwd(user, password, opts = {}) ⇒ Object
Change the password
for the user
.
64 |
# File 'lib/automateit/account_manager.rb', line 64 def passwd(user, password, opts={}) dispatch(user, password, opts) end |
#remove_group(groupname, opts = {}) ⇒ Object
Remove groupname
if it exists.
87 |
# File 'lib/automateit/account_manager.rb', line 87 def remove_group(groupname, opts={}) dispatch(groupname, opts) end |
#remove_groups_from_user(groups, user) ⇒ Object
Remove groups
(array of groupnames) from user
.
61 |
# File 'lib/automateit/account_manager.rb', line 61 def remove_groups_from_user(groups, user) dispatch(groups, user) end |
#remove_user(username, opts = {}) ⇒ Object
Remove the username
if present.
Options:
-
:remove_home – Delete user’s home directory and mail spool. Default is true.
52 |
# File 'lib/automateit/account_manager.rb', line 52 def remove_user(username, opts={}) dispatch(username, opts) end |
#remove_users_from_group(users, group) ⇒ Object
Remove users
(array of usernames) from group
.
96 |
# File 'lib/automateit/account_manager.rb', line 96 def remove_users_from_group(users, group) dispatch(users, group) end |
#users ⇒ Object
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
25 |
# File 'lib/automateit/account_manager.rb', line 25 def users() dispatch() end |
#users_for_group(query) ⇒ Object
Array of usernames in group.
102 |
# File 'lib/automateit/account_manager.rb', line 102 def users_for_group(query) dispatch(query) end |
#users_to_groups ⇒ Object
Hash of usernames and the groupnames they’re members of.
105 |
# File 'lib/automateit/account_manager.rb', line 105 def users_to_groups() dispatch() end |