【发布时间】:2013-09-23 00:15:38
【问题描述】:
我正在尝试将用户添加到运行我的节点应用程序的服务器。现在我正在使用:
exec("useradd -mp {password-hash}")
使用由
创建的哈希exec("mkpasswd -m des {password}")
这会使密码在进程列表中可见,应该不惜一切代价避免这种情况。
这就是为什么我想知道 npm 上是否有一个模块,或者以编程方式将 linux 用户添加到系统的更简单方法(这是必要的,因为我正在构建的应用程序会在用户注册时在系统上创建一个用户帐户网络)。这可以在不调用系统命令的情况下完成吗?我没有找到 npm 模块,也没有找到任何使用 node 与 ubuntu/unix 用户管理交互的信息。
解决方案
使用来自最佳答案的 Mustafa 的提示,我使用 spawn 实现了 mkpasswd 命令的一个版本。在 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。
【问题讨论】:
标签: node.js ubuntu npm user-management