downgrade
Version:
Sets the user identity of the process to `www-data`
31 lines (28 loc) • 946 B
JavaScript
/*! downgrade. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
var debug = require('debug')('downgrade')
module.exports = function downgrade (uid, gid) {
if (!uid) uid = 'www-data'
if (!gid) gid = uid
try {
process.setgid(gid)
process.setuid(uid)
debug(
'Downgraded gid: uid=%s (desired=%s); gid=%s (desired=%s)',
process.getuid(), uid, process.getgid(), gid
)
} catch (err) {
var currentUid = (process.getuid && process.getuid()) || 'none'
var currentGid = (process.getgid && process.getgid()) || 'none'
if (process.env.NODE_ENV === 'production') {
throw new Error(
'Failed to downgrade: uid=' + currentUid + ' (desired=' + uid + '); ' +
'gid=' + currentGid + ' (desired=' + gid + ')'
)
} else {
debug(
'Failed to downgrade: uid=%s (desired=%s); gid=%s (desired=%s)',
currentUid, uid, currentGid, gid
)
}
}
}