sudo su用户名,密码和命令

时间:2017-10-06 15:03:20

标签: linux bash passwords sudo su

我正在尝试做类似

的事情
echo 'my_password' | sudo -S su -c some-user ./some_command

我看了

How can I apply password to sudo in one line command and execute su root?

run a sudo command, specifying the password on the same line

但这些都没有真正回答我上面的问题。

我仍在为我的用户提供密码提示。

2 个答案:

答案 0 :(得分:3)

我有两个答案。

第一个答案是“不要这样做”。几乎可以肯定,有一种更好的方法。您可以指定某些用户无需输入密码即可执行某些命令。很可能,这就是你想要做的。

但是,如果没有说服你,我会告诉你一个小秘密。 sshpass适用于sudo,因此:

sshpass -p 'my password' sudo -S su -c some-user ./some_command

当然,在那里,我们可以削减su中间人:

sshpass -p 'my password' sudo -S -u some-user ./some_command

答案 1 :(得分:0)

你可以使用expect。首先安装expect rpm然后运行命令如下所示:

expect -c "spawn sudo /tmp/test.sh; sleep 3; expect -re \"password\"; send \"mypassword\r\n\";set timeout 5;expect -re \"time=\";"