我当前使用用户“USER1”登录“SERVER1”,并且我已将 bash 脚本放在这里。该脚本必须切换到同一服务器“SERVER1”上的不同用户“USER2”,并使用新切换的用户执行一些命令。
注意:USER1 不是 root 用户,因此我需要在脚本中指定 USER2 密码,但采用加密格式。
请帮助我实现这一目标..!
#!/bin/bash
command1
command2
.
.
...
echo "PASSWORD" | su USER2 << EOF
command1
command2
.
.
...
请注意,我不想在此处更改任何配置文件来实现此目的。
将密码存储在脚本中或尝试将其流式传输到脚本中并不是一个好主意su
。更好的方法是使用sudo
.
由于您允许 USER1 在没有密码的情况下充当 USER2,因此您可以设置/etc/sudoers
像这样:
USER1 localhost=(USER2) NOPASSWD: ALL
然后你可以调用sudo
作为 USER1 如下:
sudo -u USER2 bash
如果您想进一步锁定它,您可以指定一个允许用户执行的脚本。该行在/etc/sudoers
可能看起来像:
USER1 localhost=(USER2) NOPASSWD: /home/USER1/setup.sh
你会打电话给:
sudo -u USER2 /home/USER1/setup.sh
请注意,在最后一个示例中,我认为 USER2 需要在以下位置配置一个实际的 shell/etc/passwd
(即不/bin/false
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)