如何以特定用户(非 root)身份运行脚本?就这样?
sudo su - john /usr/share/script.pl
对于用户约翰?
答案1
您可以传递-c
tosu
来执行命令。如果sudo
允许您运行该命令,这应该可以工作:
sudo su - john -c "/usr/share/script.pl"
请记住,传递-
到su
您的环境将与您登录时相同,因此如果脚本依赖于环境变量(如当前路径),您可能需要进行调整。
答案2
其他答案可以更好地回答您的具体问题,这里有一些有用的解释。
su
= 切换用户
sudo
=切换用户并执行X(没有额外选项,“用户”是“root”)
对于大多数用户来说,su
如果不使用 ,则不允许sudo
,这意味着让用户三思而后行,通常会再次提示输入密码。
答案3
使用 -c 选项,例如
sudo su - john -c "/usr/share/script.pl"
或者,您可以使用以下命令为特定用户定义 cron 作业,而不是像上面那样定义用户
crontab -u john -e
然后设置 cron,它会更好地为特定用户添加 cron 作业,然后在 root cron 中定义用户