Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bahamas10/node-etc-passwd
Interface to read a standard Unix passwd and group file-format
https://github.com/bahamas10/node-etc-passwd
Last synced: about 2 months ago
JSON representation
Interface to read a standard Unix passwd and group file-format
- Host: GitHub
- URL: https://github.com/bahamas10/node-etc-passwd
- Owner: bahamas10
- Created: 2012-06-28T19:41:30.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2013-01-23T00:05:59.000Z (almost 12 years ago)
- Last Synced: 2024-10-13T03:38:22.196Z (2 months ago)
- Language: JavaScript
- Size: 117 KB
- Stars: 9
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
passwd(4), shadow(4) and group(4)
=================================Interface to read a standard Unix passwd, shadow and group file-format
Install
------npm install etc-passwd
Usage
-----``` js
var passwd = require('etc-passwd');
```Functions
---------### passwd.getUsers([file])
Get all users found in `file`. This functions returns an instance of `EventEmitter`.
The optional parameter `file` defaults to `/etc/passwd`
#### .on('user', function(user) {})
Returns an object whenever a user is found
#### .on('end', function() {})
Called when the file is done being read
### passwd.getUsers([file], callback(err, users))
If a callback is supplied as the last argument, the entire file will be read at once,
and the results will be returned as a list of user objects. This is good for convenience,
but can produce unnecessary overhead on systems with a lot of users.---
### passwd.getUser({'username':'root'}, [file], callback(err, user))
Look for a specific username in `file` (defaults to `/etc/passwd`). This will use the
EventEmitter to avoid loading the entire file into memory and return the callback
when the user is found. If the user is not found `err` will be set and `user` will be null.
You can specify any attribute to look for as the first argument.---
### passwd.getGroups([file])
Get all groups found in `file`. This functions returns an instance of `EventEmitter`.
The optional parameter `file` defaults to `/etc/group`
#### .on('group', function(group) {})
Returns an object whenever a group is found
#### .on('end', function() {})
Called when the file is done being read
### passwd.getGroups([file], callback(err, groups))
If a callback is supplied as the last argument, the entire file will be read at once,
and the results will be returned as a list of group objects. This is good for convenience,
but can produce unnecessary overhead on systems with a lot of groups.---
### passwd.getGroup({'groupname':'wheel'}, [file], callback(err, group))
Look for a specific groupname in `file` (defaults to `/etc/group`). This will use the
EventEmitter to avoid loading the entire file into memory and return the callback
when the group is found. If the group is not found `err` will be set and `group` will be null.
You can specify any attribute to look for as the first argument.---
### passwd.getShadows([file])
Get all shadow entries found in `file`. This functions returns an instance of `EventEmitter`.
The optional parameter `file` defaults to `/etc/shadow`
#### .on('shadow', function(shadow) {})
Returns an object whenever a shadow entry is found
#### .on('end', function() {})
Called when the file is done being read
### passwd.getShadows([file], callback(err, shadows))
If a callback is supplied as the last argument, the entire file will be read at once,
and the results will be returned as a list of shadow objects. This is good for convenience,
but can produce unnecessary overhead on systems with a lot of shadow entries.---
### passwd.getShadow({'username':'root'}, [file], callback(err, shadow))
Look for a specific username in `file` (defaults to `/etc/shadow`). This will use the
EventEmitter to avoid loading the entire file into memory and return the callback
when the shadow-entry is found. If the shadow entry is not found `err` will be set and `shadow` will be null.
You can specify any attribute to look for as the first argument.Example
-------### passwd.getUsers()
An example of using the EventEmitter interface to find users
``` js
var passwd = require('passwd'),
users = passwd.getUsers();users.on('user', function(user) {
console.log(JSON.stringify(user));
});
users.on('end', function() {
console.log('Done.');
});
```{"username":"nobody","password":"*","uid":-2,"gid":-2,"comments":"Unprivileged User","home":"/var/empty","shell":"/usr/bin/false"}
{"username":"root","password":"*","uid":0,"gid":0,"comments":"System Administrator","home":"/var/root","shell":"/bin/sh"}
...
Done.### passwd.getUsers(callback(users))
Using the callback instead of the EventEmitter to get the results
``` js
var passwd = require('passwd');
passwd.getUsers(function(users) {
console.log(JSON.stringify(users));
});
`````` json
[
{"username":"nobody","password":"*","uid":-2,"gid":-2,"comments":"Unprivileged User","home":"/var/empty","shell":"/usr/bin/false"},
{"username":"root","password":"*","uid":0,"gid":0,"comments":"System Administrator","home":"/var/root","shell":"/bin/sh"},
...
]
```### passwd.getUser()
As for a specific user on the system
``` js
var passwd = require('etc-passwd');
passwd.getUser({'username':'root'}, function(err, user) {
console.log(JSON.stringify(user));
});
`````` json
{
"username": "root",
"password": "*",
"uid": 0,
"gid": 0,
"comments": "System Administrator",
"home": "/var/root",
"shell": "/bin/sh"
}
```---
### passwd.getGroups()
An example of using the EventEmitter interface to find groups
``` js
var passwd = require('passwd'),
groups = passwd.getGroups();groups.on('group', function(group) {
console.log(JSON.stringify(group));
});
groups.on('end', function() {
console.log('Done.');
});
```{"groupname":"nobody","password":"*","gid":-2,"users":[]}
{"groupname":"nogroup","password":"*","gid":-1,"users":[]}
...
Done.### passwd.getGroups(callback(groups))
Using the callback instead of the EventEmitter to get the results
``` js
var passwd = require('passwd');
passwd.getGroups(function(groups) {
console.log(JSON.stringify(groups));
});
`````` json
[
{"groupname":"nobody","password":"*","gid":-2,"users":[]}
{"groupname":"nogroup","password":"*","gid":-1,"users":[]}
...
]
```### passwd.getGroup()
``` js
var passwd = require('etc-passwd');
passwd.getGroup({'groupname':'wheel'}, function(err, group) {
console.log(JSON.stringify(group));
});
`````` json
{
"groupname": "wheel",
"password": "*",
"gid": 0,
"users": [
"root"
]
}
```License
-------MIT Licensed