Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

sys-admin

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sys-admin

  • 1.8.4
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

Ruby

Description

The sys-admin library is a unified, cross platform replacement for the Etc module.

Installation

gem install sys-admin

Adding the trusted cert

gem cert --add <(curl -Ls https://raw.githubusercontent.com/djberg96/sys-admin/main/certs/djberg96_pub.pem)

Synopsis

require 'sys/admin' # or 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.

OSX

The slowdown for collecting lastlog information on OSX seems to have gotten progressively worse over time. Do not be surprised by significant slowdowns if you opt to collect it.

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

License

Apache-2.0

(C) 2005-2024, Daniel J. Berger All Rights Reserved

Author

Daniel J. Berger

FAQs

Package last updated on 12 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc