2013-10-24 75 views
0

我有一套更新命令,需要按照我的大學的安全策略定期運行。這些命令:關於腳本的設置權限

sudo易於得到清潔

sudo易於得到更新

sudo易於得到-y --purge的dist-升級

現在我想要做的就是自動化這個過程。我會這樣做的方式是

  1. 將所有這些命令設置爲shell腳本。
  2. 早上6點,每天早上運行腳本作爲cronjob。

我寫了一個名爲「update_script.sh」的shell腳本並將其保存在主文件夾中。腳本內部是沒有sudo選項的三個命令。然後我將腳本的所有權更改爲root。

接下來我修改了visudo文件以允許此腳本在沒有密碼的情況下運行。

(我跟着這個link步驟)

現在我的問題是這樣的:

當我試圖運行此腳本更新爲「SH update_script.sh」它不能運行它。只有當我做「sudo sh update_script.sh」它才能完成這項工作。

我在哪裏搞亂了設置?

+0

可能是因爲您沒有允許自己運行apt-get而沒有密碼 –

回答

2

那麼你描述它的方式,你允許自己使用sudo執行

update_script.sh 

,這意味着你需要(通過用戶的crontab據我所知)與

sudo update_script.sh 

這意味着,該腳本由根執行,腳本內的所有命令執行調用腳本作爲根也是如此。

如果你只是想在不使用sudo的情況下執行腳本,而是允許自己以root身份執行命令(在你的情況下是apt-get命令),你必須添加命令(apt-得到你的情況)到sudoers文件。但就我看來,在你的情況下,你應該用sudo來調用整個腳本。