如何以用户而不是root用户身份运行cron作业

Jee*_*gre 9 linux bash cron

我有几个bash脚本添加到指定时间的cron作业,但它需要以root用户身份执行.我正在尝试运行这些脚本,即crob作业,但它需要root用户权限,因为我在ubuntu ec2实例中运行此作业,其中root用户受到限制.以root用户身份运行这些脚本的工作原理是什么.

谢谢

Rei*_*ica 10

您可以使用setuid标志使脚本以root身份执行,这使脚本作为其所有者运行:

chmod +s yourscript
chown root yourscript
Run Code Online (Sandbox Code Playgroud)

只需yourscript运行您想要以root身份运行的任何命令.

请注意,使用此方法,任何用户都可以运行该脚本.


Til*_*ilo 7

有几种可能性:

1)将脚本添加到root的crontab中.要做到这一点,你必须做sudo su -su -成为root,然后使用添加cron作业crontab -e

2)允许非root用户使用crontab,并将cron作业添加到该用户的crontab,方法是使用crontab -e 设置脚本的set-uid标志并将所有权更改为root,因此它将以root身份执行chmod +s scriptname; chown root scriptname