如何在一行命令中将密码应用于sudo并执行su root?

时间:2015-04-29 08:37:02

标签: linux bash

我创建了一个名为samX且具有root权限的用户(在visudo中附加了“samX ALL =(ALL:ALL)ALL”)。

我正在尝试将密码应用于sudo,然后su root并在一行命令中依次执行whoami。我当前的命令有点如下,但它抱怨错误: sudo:su root; whoami:找不到命令

echo 'CbEYKFKt' | sudo -S 'su root; whoami'

其中,'CbEYKFKt'是用户samX的密码。

有没有解决这个问题?非常感谢。

4 个答案:

答案 0 :(得分:4)

您应该在sudoers文件中添加一行,例如

samX ALL=(ALL:ALL)  NOPASSWD: /sbin/su

而不是在bash历史记录或任何其他文件中保存您的密码。有了它,根本不需要输入密码。

如果要执行其他命令,请添加该命令。

答案 1 :(得分:3)

echo 'CbEYKFKt' | sudo -S su -c whoami

应该工作 - -c指定su的命令,而在你的例子中,你似乎正在运行命令'root; whoami'不存在 - 没有shell将其分解为两个单独的命令。

答案 2 :(得分:0)

这应该有效。

echo CbEYKFKt | sudo -S; whoami

答案 3 :(得分:0)

当您通过putty或moba登录到存储非root帐户登录凭据的shell会话时,只需添加此命令即可在putty或moba登录时执行,它将把您的访问权限切换到root用户离开。

echo "PASSWORD" | sudo -S su - && sudo su