2012-04-26 434 views
0

我有一個隔夜腳本執行給定的用戶家務,然後關閉。關機需要root權限,但是管理任務需要以正在清理文件的用戶身份運行。清理運行需要不確定的時間,因此清理和關閉都必須位於同一個腳本中。我的問題是,如何用這兩個命令cron腳本,第一個命令需要由普通用戶(比如Bob)運行;並且只有在第一次完成之後才需要以root身份運行(shutdown)。我已經嘗試過使用系統crontab(它可以作爲Bob運行管理員,但不能關閉);並作爲root crontab(可以關閉,但不能像Bob一樣運行管理任務)。幫助將不勝感激。系統crontab:如何以root用戶身份運行腳本並以用戶身份運行

回答

0

您可以使用sudo作爲另一個用戶執行命令。

我在Debian上試過以下內容。

寫了一個包含以下內容的腳本。

#!/bin/bash 

echo $HOME 

並執行如下命令

sudo -u nonrootuser ./script && some-admin-command 

哪個印刷/home/nonrootuser和執行的some-admin-command

這表明根能夠既作爲普通用戶和作爲根來執行。因此,請將您的用戶看守腳本保存在script中,用Bob替換nonrootuser,用shutdown命令替換some-admin-command並以root用戶身份運行。

0

在文件的cronjob,你可以執行以下命令命令:

0 5 * * * sudo -u nonrootser -H bash script.sh && some-command-another 

,你可以寫,其中包括以下內容作爲文件script.sh:

#!/bin/bash 
echo "Hello World" 
相關問題