如何以用户身份运行cron作业而不是root用户
我有几个bash脚本正在以指定的时间添加到cron作业,但它需要以root用户身份执行。我试图运行这些脚本,即crob作业,但它需要root用户权限,因为我在root用户受限的ubuntu ec2实例中运行此作业。以root用户身份运行这些脚本的工作是什么?如何以用户身份运行cron作业而不是root用户
感谢
有几种可能性:
1)将脚本添加到root的crontab。要做到这一点,你需要做的sudo su -
或su -
成为root,然后用crontab -e
2)允许非root用户使用crontab中添加cron作业,而cron作业添加到用户的crontab,由使用crontab -e
和设置你的脚本集的uid标志并改变所有权为root,所以它会执行为根chmod +s scriptname; chown root scriptname
可以使脚本执行以root身份通过setuid flag,这使得运行作为其所有者的脚本:
chmod +s yourscript
chown root yourscript
只是要yourscript
来看,你想以root身份运行任何命令。
请注意,使用此方法,任何用户都可以运行该脚本。
出于安全原因,许多平台都会忽略脚本文件中的'setuid'。 – tripleee
巴西尔对他的评论是正确的。如果您想在Ubuntu中运行root
,请使用sudo
。
如果你想拥有超级用户权限,而无需再输入密码自动执行脚本(或者一些命令),运行
sudo visudo
编辑sudoers文件。为了使sudo
停止要求特定脚本(或命令)密码插入
username ALL = NOPASSWD: /path/to/script
其中username
是用户调用须藤的名称。
我不知道理解的问题。也许'super'或'sudo'命令可以帮助你? –
这属于ServerFault,而不是*。 – Amy
你已经足够长时间知道这不属于这里。如果你想知道如何在不同的用户帐户下在cron上使用bash脚本,请尝试[unix.se]。如果EC2在这方面发挥重要作用,请尝试[sf]。 – Will