linux 中对 user 和 su 感到困惑

linux 中对 user 和 su 感到困惑

如何以特定用户(非 root)身份运行脚本?就这样?

sudo su - john /usr/share/script.pl 对于用户约翰?

答案1

您可以传递-ctosu来执行命令。如果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 中定义用户

相关内容