我正在尝试将用户添加到运行我的节点应用程序的服务器。现在我正在使用:
exec("useradd -mp {password-hash}")
使用由创建的哈希
exec("mkpasswd -m des {password}")
这会使密码在进程列表中可见,应该不惜一切代价避免这种情况。
这就是为什么我想知道 npm 上是否有一个模块或者以编程方式将 linux 用户添加到系统的更简单方法(这是必要的,因为当用户在网络上注册时,我正在构建的应用程序会在系统上创建一个用户帐户) . 这可以在不调用系统命令的情况下完成吗?我既没有找到 npm 模块,也没有找到任何使用 node 与 ubuntu/unix 用户管理交互的信息。
解决方案
使用来自最佳答案的 Mustafa 的提示,我mkpasswd
使用spawn
. 在 CoffeeScript 中,它看起来像这样:
{spawn} = require 'child_process'
child = spawn 'mkpasswd', ['-m','des','--stdin']
child.stdout.on 'data', (data)->
console.log 'password hash arrived: ', data.toString()
child.stdin.write 'password'
确保在调试代码时添加正确child.stderr
的错误处理事件处理程序。child.stdout