在Linux系统启动时,我需要制作一个bash脚本以从用户1切换到用户2,并运行该脚本以执行命令。我希望这一切都发生而无需询问用户2的密码。.只需打开PC并使用usr 1登录,然后一切自动运行。
答案 0 :(得分:1)
使用sudo命令,将以下内容添加到您的sudoers文件中(使用visudo命令):
user1 ALL=(user2) NOPASSWD: ALL
这允许用户user1使用sudo命令以身份user2运行任何命令,而无需任何密码身份验证。例如:
user1$ sudo -u user2 whoami
user2
您可以通过列出允许的命令而不是sudoers中的“ ALL”关键字来减少命令集:
user1 ALL=(user2) NOPASSWD: /usr/bin/whoami, /bin/ls
答案 1 :(得分:0)
您需要脚本本身来动态切换用户并运行命令吗?
将这些命令存储在另一个脚本中,并以user2身份运行那个。
echo "command1; command2; etc;">/tmp/file2run
sudo -u user2 bash /tmp/file2run
答案 2 :(得分:0)
您也可以使用此处文档实现此目的
su user1 - <<END
id
## Do some user1 related activities
END
su user2 - << END
id
## Do some user2 related activities
END
su user1 - <<END
id
## continue user1 related activities
END
如果user1无需密码即可访问user2,则可以将user2此处doc放在user1此处doc内,如果使用嵌套此处doc方法,请确保使用其他定界符。