Class AutomateIt::AccountManager
In: lib/automateit/account_manager.rb
Parent: AutomateIt::Plugin::Manager

AccountManager

The AccountManager provides a way of managing system accounts, such as Unix users and groups.

Methods

Classes and Modules

Class AutomateIt::AccountManager::BaseDriver
Class AutomateIt::AccountManager::Etc
Class AutomateIt::AccountManager::NSCD
Class AutomateIt::AccountManager::POSIX
Class AutomateIt::AccountManager::PasswdExpect
Class AutomateIt::AccountManager::PasswdPTY

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.

[Source]

# File lib/automateit/account_manager.rb, line 81
  def add_group(groupname, opts={}) dispatch(groupname, opts) end

Add groups (array of groupnames) to user.

[Source]

# 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")

[Source]

# File lib/automateit/account_manager.rb, line 42
  def add_user(username, opts={}) dispatch(username, opts) end

Add users (array of usernames) to group.

[Source]

# 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

[Source]

# File lib/automateit/account_manager.rb, line 76
  def groups() dispatch() end

Array of groupnames this user is a member of.

[Source]

# File lib/automateit/account_manager.rb, line 99
  def groups_for_user(query) dispatch(query) end

Does group exist?

[Source]

# File lib/automateit/account_manager.rb, line 90
  def has_group?(group) dispatch(group) end

Is user present?

[Source]

# 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.

[Source]

# File lib/automateit/account_manager.rb, line 13
  def invalidate(database) dispatch_safely(database) end

Change the password for the user.

[Source]

# File lib/automateit/account_manager.rb, line 64
  def passwd(user, password, opts={}) dispatch(user, password, opts) end

Remove groupname if it exists.

[Source]

# File lib/automateit/account_manager.rb, line 87
  def remove_group(groupname, opts={}) dispatch(groupname, opts) end

Remove groups (array of groupnames) from user.

[Source]

# 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.

[Source]

# File lib/automateit/account_manager.rb, line 52
  def remove_user(username, opts={}) dispatch(username, opts) end

Remove users (array of usernames) from group.

[Source]

# 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

[Source]

# File lib/automateit/account_manager.rb, line 25
  def users() dispatch() end

Array of usernames in group.

[Source]

# 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.

[Source]

# File lib/automateit/account_manager.rb, line 105
  def users_to_groups() dispatch() end

[Validate]