UNPKG

1.15 kBJavaScriptView Raw
1
2var fs = require('fs')
3
4var getUsers = function() {
5 return fs.readFileSync('/etc/passwd')
6 .toString()
7 .split('\n')
8 .filter(function (user) {
9 return user.length && user[0] != '#';
10 })
11 .reduce(function(map, user) {
12 var fields = user.split(':');
13
14 map[fields[0]] = map[fields[2]] = {
15 username : fields[0],
16 password : fields[1],
17 userId : fields[2],
18 groupId : fields[3],
19 name : fields[4].split(',')[0],
20 homedir : fields[5],
21 shell : fields[6]
22 };
23
24 return map
25 }, {})
26}
27
28var getGroups = function(cb) {
29 var groups
30
31 try {
32 groups = fs.readFileSync('/etc/group')
33 } catch(e) {
34 return e
35 }
36
37 return groups
38 .toString()
39 .split('\n')
40 .filter(function (group) {
41 return group.length && group[0] != '#';
42 })
43 .reduce(function(map, group) {
44 var fields = group.split(':');
45 map[fields[0]] = map[fields[2]] = {
46 name : fields[0],
47 password : fields[1],
48 id : fields[2],
49 members : fields[3].split(',')
50 };
51 return map;
52 }, {})
53}
54
55module.exports = {
56 getUsers,
57 getGroups
58}