使用 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`,
});
我在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`,
});