[問題] 如何在Scipt裡執行root的指令

作者: learnbao (嘻嘻)   2015-05-25 21:36:52
各位前輩好~
想請問怎麼在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
作者: kenduest (小州)   2015-05-25 21:47:00
1. shell script 設定 4755 這種 setuid 權限不大正確因為 shell script 是文字檔案,最後由 shell 讀入執行所以多了 setuid 權限多此一舉,只要 755 這類即可2. script 要具備 root 權限,要使用 sudo 命令去執行比方 sudo /path/myscript.sh 這樣才會有預期結果myscript.sh 本身才會有 root 身份權限可以運作3. 若執行 /path/myscript.sh 自己本身提昇權限的話可以自己於自己 script 判斷必要呼叫 sudo 來執行自己示意程式碼截圖:http://i.imgur.com/AmFYYay.png4. 搭配 crontab 時候,注意一下使用 visudo 設定時沒有 requiretty 這類設定,因為背景執行程式是無終端機5. 因為 sudo 會認絕對路徑判斷程式檔案是否被允許執行,所以我提供的 script 程式碼檔案你也要自己調整一下就是script放置到正確目錄位置,然後檔案本身內容sudo 後面就是傳完整的路徑位置,那sudo才會過關
作者: bartschen (are you there ?)   2015-05-25 21:55:00
請問4755的部份,不正確的原因是因為沒有編譯成為binary嗎?謝謝
作者: kenduest (小州)   2015-05-25 21:57:00
binary 檔案 setuid 權限才會有實質功能6. 簡單一點請用 root 帳號身份執行該 script 比較單純

Links booklink

Contact Us: admin [ a t ] ucptt.com