gpt4 book ai didi

bash - Bash脚本中的Sudo SU无需询问用户密码

转载 作者:行者123 更新时间:2023-12-02 14:29:04 24 4
gpt4 key购买 nike

我的用户在根组中。我将ssh作为根用户分配到服务器,因为它说Permission denied, please try again.我通常以我的用户身份使用ssh,一旦登录,我就输入sudo su并提供用户密码成为root用户。

我想自动化部分工作,因此我想编写一个bash脚本,该脚本将以我的用户的身份ssh,切换到root用户,然后调用命令集。

到目前为止,我附带了以下脚本,但是如果不要求用户输入密码,便无法切换到root用户:

while read p; do
p=$(echo $p|tr -d '\r')
sshpass -p "myPasswd" ssh -T -o StrictHostKeyChecking=no myUser@remoteServer << EOT
cd /var/log/jboss/ #here I am getting 'permission denied' message as only root has access
exit
EOT
done < $nodes

我也尝试过:
sshpass -p "myPasswd" ssh  -tt -o StrictHostKeyChecking=no myUser@remoteServer 'cd /var/log/jboss/'

但我收到了相同的 permission denied错误消息

最佳答案

出于安全原因,通常不允许root用户ssh访问。

PermitRootLogin no # value in /etc/ssh/sshd_config

以上设置阻止您首先以root用户身份登录。如果您对网络的安全性“满意”,则可以考虑修改该设置。如果您曾经对sshd配置进行了修改,则需要重新启动ssh服务:
sudo service sshd restart

当然,如果您要坚持常识,则可能需要更改sudoers文件(如chepner和Nic3500的建议)。这是一个合理的配置更改:

将以下行添加到/ etc / sudoers文件的底部:
#includedir /etc/sudoers.d

并将以下文件添加到您的/etc/sudoers.d目录:
cat /etc/sudoers.d/10_wheel:
%wheel ALL=(ALL) NOPASSWD: ALL

上面的示例将sudo配置为允许无需密码即可访问wheel组成员的所有命令。您可能希望将组名更改为用户所属的组。

您可以通过发出以下命令来确定组:
groups

另外,为避免使用sshpass,可以将ssh公钥部署到远程主机。最后,如果您根本不想更改服务器,则可以实现期望的功能。如果您熟悉python编码,我建议使用pexpect-我发现它比通常讨论的基于TCL的期望容易得多。

关于bash - Bash脚本中的Sudo SU无需询问用户密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55163567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com