我可以执行su
with 操作su <username>
,它会要求我输入密码。是否有密码参数,su
这样就不会提示我输入密码?
例如su <username> -p <password>
答案1
如果你想编写一个以不同用户身份运行的脚本,那么类似这样的方法可以工作,尽管它会将单词“password”不带换行符输出到标准输出
su - username <<!
enterpasswordhere
enter commands to run as the new user
!
如果你有一个名为 fred 的用户,其密码为 1234,并且想要以 fred 的身份获取 fred 主目录的 ls,而不显示密码字符串,则它看起来会像这样
su - fred <<! >/dev/null 2>&1
1234
whoami > /dev/tty
ls > /dev/tty
!
答案2
我认为不存在,而且这不是一个好主意。原因如下:
如果您在命令中输入密码su <username> -p <password>
,则该密码将以纯文本形式存储在您的 bash 历史记录中。这无疑是一个巨大的安全问题。
如果需要以自动方式运行带有su
(或)的命令,请编写一个包含不带或 的命令的 shellscript并运行sudo
su
sudo
su <username> script.sh
答案3
答案4
如果您想以新用户身份执行一些特定命令,请使用以下命令:
sudo -u {username} {command to be executed as the new user}