使用 node.js 以编程方式添加 samba 用户

Adding samba user programically with node.js

我在node,js中写了函数如下:

const addUserToSamba = (userLogin, password) => {

         const echoPassword = spawnSync('echo', ['ne',`${password}\n${password}\n`]);

         const addUserCredentialsToSamba = spawnSync('smbpasswd', ['-a', '-s', userLogin], {
                 input: echoPassword.stdout,
         });

         console.log('Added user credentials to Samba configuration');
         console.log(addUserCredentialsToSamba.stderr.toString());
         console.log(addUserCredentialsToSamba.stdout.toString());
}

我想在 bash 中实现这样的目标:

echo -ne "$PASS\n$PASS\n" | smbpasswd -a -s $LOGIN

当我使用给定的 userlLogin 和用户密码 运行 addUserToSamba(userLogin, password); 函数时,我什至会收到消息 Added user ${userLogin} 作为 addUserCredentialsToSamba 结果的标准输出。

但是凭据不起作用。

我是否正确地将此 bash 函数重写为 node.js 函数? 如果不是,我该如何解决?

您可以简单地跳过 echo 部分并将凭据直接输出到 smbpasswd 进程:

const addUserCredentialsToSamba = spawnSync('smbpasswd', ['-a', '-s', userLogin], {
    input: `${password}\n${password}\n`,
});