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

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

谢谢

Solutions Collecting From Web of "如何以root用户身份运行cron作业"

有几种可能性:

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

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

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

 chmod +s yourscript chown root yourscript 

只要让你的yourscript运行你想以root yourscript运行的任何命令。

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

巴西尔对他的评论是正确的。 如果你想在Ubuntu中以root身份运行某些东西,请使用sudo

如果要使用超级用户权限自动执行脚本(或某些命令),而不必输入密码,请运行

 sudo visudo 

编辑sudoers文件。 为了让sudo停止要求输入特定脚本(或命令)的密码

 username ALL = NOPASSWD: /path/to/script 

其中username是调用sudo的用户的名字。