如何在Linux中从用户1切换到用户2并运行一些命令?

时间:2018-12-21 12:48:15

标签: linux bash

在Linux系统启动时,我需要制作一个bash脚本以从用户1切换到用户2,并运行该脚本以执行命令。我希望这一切都发生而无需询问用户2的密码。.只需打开PC并使用usr 1登录,然后一切自动运行。

3 个答案:

答案 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方法,请确保使用其他定界符。