users.lua 984 B

123456789101112131415161718192021222324252627282930313233
  1. local util = require 'gluon.util'
  2. local os = os
  3. local string = string
  4. module 'gluon.users'
  5. function add_user(username, uid, gid)
  6. util.lock('/var/lock/passwd')
  7. util.replace_prefix('/etc/passwd', username .. ':', string.format('%s:*:%u:%u::/var:/bin/false\n', username, uid, gid))
  8. util.replace_prefix('/etc/shadow', username .. ':', string.format('%s:*:0:0:99999:7:::\n', username))
  9. util.unlock('/var/lock/passwd')
  10. end
  11. function remove_user(username)
  12. util.lock('/var/lock/passwd')
  13. util.replace_prefix('/etc/passwd', username .. ':')
  14. util.replace_prefix('/etc/shadow', username .. ':')
  15. util.unlock('/var/lock/passwd')
  16. end
  17. function add_group(groupname, gid)
  18. util.lock('/var/lock/group')
  19. util.replace_prefix('/etc/group', groupname .. ':', string.format('%s:x:%u:\n', groupname, gid))
  20. util.unlock('/var/lock/group')
  21. end
  22. function remove_group(groupname)
  23. util.lock('/var/lock/group')
  24. util.replace_prefix('/etc/group', groupname .. ':')
  25. util.unlock('/var/lock/group')
  26. end