繁体   English   中英

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

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

我创建了一个名为 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的密码。

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

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

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

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

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

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

如果要执行不同的命令,请添加该命令。

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

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

您可以正常编写代码并将其分成几行,而不是将所有命令放在一行中:

#!/bin/bash
echo "CbEYKFKt" | sudo -S echo && sudo -s <<EOF
#put your code here
#All codes will be executed as sudo
EOF

注意:像这样传递密码是个坏主意。

这应该有效。

echo CbEYKFKt | sudo -S; whoami

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM