2011-11-18 92 views
9

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

感谢

+1

我不知道理解的问题。也许'super'或'sudo'命令可以帮助你? –

+0

这属于ServerFault,而不是StackOverflow。 – Amy

+0

你已经足够长时间知道这不属于这里。如果你想知道如何在不同的用户帐户下在cron上使用bash脚本,请尝试[unix.se]。如果EC2在这方面发挥重要作用,请尝试[sf]。 – Will

回答

7

有几种可能性:

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

10

可以使脚本执行以root身份通过setuid flag,这使得运行作为其所有者的脚本:

chmod +s yourscript 
chown root yourscript 

只是要yourscript来看,你想以root身份运行任何命令。

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

+0

出于安全原因,许多平台都会忽略脚本文件中的'setuid'。 – tripleee

2

巴西尔对他的评论是正确的。如果您想在Ubuntu中运行root,请使用sudo

如果你想拥有超级用户权限,而无需再输入密码自动执行脚本(或者一些命令),运行

sudo visudo 

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

username ALL = NOPASSWD: /path/to/script 

其中username是用户调用须藤的名称。

相关问题