Server : nginx/1.18.0 System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64 User : www-data ( 33) PHP Version : 8.0.16 Disable Function : 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, Directory : /var/www/ecommerce/node_modules/parse-passwd/ |
'use strict';
/**
* Parse the content of a passwd file into a list of user objects.
* This function ignores blank lines and comments.
*
* ```js
* // assuming '/etc/passwd' contains:
* // doowb:*:123:123:Brian Woodward:/Users/doowb:/bin/bash
* console.log(parse(fs.readFileSync('/etc/passwd', 'utf8')));
*
* //=> [
* //=> {
* //=> username: 'doowb',
* //=> password: '*',
* //=> uid: '123',
* //=> gid: '123',
* //=> gecos: 'Brian Woodward',
* //=> homedir: '/Users/doowb',
* //=> shell: '/bin/bash'
* //=> }
* //=> ]
* ```
* @param {String} `content` Content of a passwd file to parse.
* @return {Array} Array of user objects parsed from the content.
* @api public
*/
module.exports = function(content) {
if (typeof content !== 'string') {
throw new Error('expected a string');
}
return content
.split('\n')
.map(user)
.filter(Boolean);
};
function user(line, i) {
if (!line || !line.length || line.charAt(0) === '#') {
return null;
}
// see https://en.wikipedia.org/wiki/Passwd for field descriptions
var fields = line.split(':');
return {
username: fields[0],
password: fields[1],
uid: fields[2],
gid: fields[3],
// see https://en.wikipedia.org/wiki/Gecos_field for GECOS field descriptions
gecos: fields[4],
homedir: fields[5],
shell: fields[6]
};
}