HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/quadcode.com/node_modules/pm2/lib/tools/passwd.js
var fs = require('fs')

var getUsers = function() {
  return fs.readFileSync('/etc/passwd')
    .toString()
    .split('\n')
    .filter(function (user) {
      return user.length && user[0] != '#';
    })
    .reduce(function(map, user) {
      var fields = user.split(':');

      map[fields[0]] = map[fields[2]] = {
        username : fields[0],
        password : fields[1],
        userId : fields[2],
        groupId : fields[3],
        name : fields[4].split(',')[0],
        homedir : fields[5],
        shell : fields[6]
      };

      return map
    }, {})
}

var getGroups = function(cb) {
  var groups

  try {
    groups = fs.readFileSync('/etc/group')
  } catch(e) {
    return e
  }

  return groups
    .toString()
    .split('\n')
    .filter(function (group) {
      return group.length && group[0] != '#';
    })
    .reduce(function(map, group) {
      var fields = group.split(':');
      map[fields[0]] = map[fields[2]] = {
        name : fields[0],
        password : fields[1],
        id : fields[2],
        members : fields[3].split(',')
      };
      return map;
    }, {})
}

module.exports = {
  getUsers,
  getGroups
}