passwd.js 1.1 KB

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