首页 文章

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

提问于
浏览
0

我在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?如果不是,我该如何解决?

1 回答

  • 1

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

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

相关问题