调用su命令时显示隐藏密码?

调用su命令时显示隐藏密码?

这是我第一次使用 su 命令,它实际上在终端上显示密码并且不会保持隐藏状态。这是我的代码片段:

sshpass -p "password" ssh -q [email protected] "su -lc 'mkdir temp/'"

代码说明:我正在访问远程服务器并尝试在该服务器上以 root 身份创建文件夹。为此,我必须使用 su 命令,它会提示我输入密码。当我输入密码时,它会显示并且不会隐藏。

答案1

我认为你应该使用sudo.

sshpass -p "password" ssh -q [email protected] "sudo mkdir temp/"

使用 sudo,您甚至可以在没有密码的情况下运行 mkdir。运行visudo并添加此行: your_username ALL=(ALL)NOPASSWD:/usr/bin/mkdir。请注意,如果您的用户帐户受到威胁,这可能会带来安全风险。

此外,如果适合此命令的用例,您还可以为 SSH 设置公钥身份验证。然后您可以删除 'sshpass' 并简单地使用.ssh -q [email protected] "sudo mkdir temp/"

相关内容