如何在Scipt裡執行root的指令 - Linux

Table of Contents

各位前輩好~

想請問怎麼在scipt裡面執行需要root權限的動作,且不用打密碼

作業環境CentOS6.2

因為我在crontab裡設定每一分鐘去執行

到一個資料夾底下複製一個檔案到另外一個資料夾

但是這個cp的動作需要root權限,我根據google上面的用法

還是一樣會顯示權限不符合 有人能幫我解決疑惑嗎 謝謝

下面這個方法試過了沒用 還是要打su,且一樣要輸入密碼
sudo chown root.root <my script>

sudo chmod 4755 <my script>

/etc/sudoers
Cmnd_Alias CMDS = /path/to/your/script

<username> ALL=NOPASSWD: CMDS


--

--

All Comments

Joseph avatarJoseph2015-05-28
1. shell script 設定 4755 這種 setuid 權限不大正確
Charlotte avatarCharlotte2015-05-30
因為 shell script 是文字檔案,最後由 shell 讀入執行
所以多了 setuid 權限多此一舉,只要 755 這類即可
2. script 要具備 root 權限,要使用 sudo 命令去執行
Olivia avatarOlivia2015-06-02
比方 sudo /path/myscript.sh 這樣才會有預期結果
myscript.sh 本身才會有 root 身份權限可以運作
3. 若執行 /path/myscript.sh 自己本身提昇權限的話
Mary avatarMary2015-06-06
可以自己於自己 script 判斷必要呼叫 sudo 來執行自己
示意程式碼截圖:http://i.imgur.com/AmFYYay.png
Zora avatarZora2015-06-10
4. 搭配 crontab 時候,注意一下使用 visudo 設定時
沒有 requiretty 這類設定,因為背景執行程式是無終端機
Delia avatarDelia2015-06-12
5. 因為 sudo 會認絕對路徑判斷程式檔案是否被允許執行,
Ophelia avatarOphelia2015-06-16
所以我提供的 script 程式碼檔案你也要自己調整一下
就是script放置到正確目錄位置,然後檔案本身內容
sudo 後面就是傳完整的路徑位置,那sudo才會過關
Ursula avatarUrsula2015-06-17
請問4755的部份,不正確的原因是因為沒有編譯
成為binary嗎?謝謝
Mason avatarMason2015-06-17
binary 檔案 setuid 權限才會有實質功能
Wallis avatarWallis2015-06-22
6. 簡單一點請用 root 帳號身份執行該 script 比較單純