[英]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.