Description¶ ↑
The sys-admin library is a unified, cross platform replacement for the Etc module.
Installation¶ ↑
gem install sys-admin
Synopsis¶ ↑
require 'sys/admin' include Sys # Returns an Array of User objects a = Admin.users # Returns an Array of Group objects g = Admin.groups # Get information about a particular user p Admin.get_user("nobody") p Admin.get_user("nobody", :localaccount => true) # Get information about a particular group p Admin.get_group("adm") p Admin.get_group("adm", :localaccount => true)
Admin¶ ↑
Admin.get_login
Returns the user name (only) of the current login.
Admin.get_user(name, options = {}) Admin.get_user(uid, options = {})
Returns a User object based on +name+ or +uid+. The +options+ hash is for MS Windows only, and allows you to restrict the search based on the options you provide, e.g. 'domain' or 'localaccount'.
Admin.get_group(name, options = {}) Admin.get_group(gid, options = {})
Returns a Group object based on +name+ or +uid+. The +options+ hash is for MS Windows only, and allows you to restrict the search based on the options you provide, e.g. 'domain' or 'localaccount'.
Admin.groups(options = {})
Returns an Array of Group objects. The +options+ hash is for MS Windows only, and allows you to restrict the search based on the options you provide, e.g. 'domain' or 'localaccount'.
Admin.users(options = {})
Returns an Array of User objects. The +options+ hash is for MS Windows only, and allows you to restrict the search based on the options you provide, e.g. 'domain' or 'localaccount'.
User class¶ ↑
User (Windows)¶ ↑
The User class has the following attributes on MS Windows systems: * account_type * caption * description * domain * password * full_name * gid * install_date * name * sid * status * disabled? * local? * lockout? * password_changeable? * password_expires? * password_required? * uid
User (Unix)¶ ↑
The User class has the following attributes on Unix systems: * name * passwd * uid * gid * dir * shell * gecos * quota * age * class * comment * change * expire
Group Classes¶ ↑
Group (Windows)¶ ↑
The Group class has the following attributes on MS Windows systems: * caption * description * domain * install_date * name * sid * status * gid * local?
Group (Unix)¶ ↑
The Group class has the following attributes on Unix systems: * name * gid * members * passwd
Error Classes¶ ↑
Admin::Error < StandardError
Raised if anything goes wrong with any of the above methods.
Developer's Notes¶ ↑
MS Windows¶ ↑
The Windows version now uses a win32ole + WMI approach to getting information. This means that the WMI service must be running on the target machine in order to work (which it is, by default).
UNIX¶ ↑
The underlying implementation is similar to core Ruby's Etc implementation. But, in addition to the different interface, I use the re-entrant version of the appropriate functions when available.
Future Plans¶ ↑
Make the User and Group objects comparable. Add ability to add, configure and delete users on Unix platforms.
Known Bugs¶ ↑
None that I'm aware of. If you find any, please log them on the project page at: https://github.com/djberg96/sys-admin
Contributions¶ ↑
Although this library is free, please consider having your company setup a gittip if used by your company professionally. http://www.gittip.com/djberg96/
License¶ ↑
Artistic 2.0
Copyright¶ ↑
(C) 2005-2015, Daniel J. Berger All Rights Reserved
Author¶ ↑
Daniel J. Berger