2011-11-18 93 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是用戶調用須藤的名稱。

相關問題