看板 Linux 關於我們 聯絡資訊
各位前輩好~ 想請問怎麼在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 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.238.250.131 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1432561015.A.B7E.html ※ 編輯: learnbao (36.238.250.131), 05/25/2015 21:39:05
kenduest: 1. shell script 設定 4755 這種 setuid 權限不大正確 05/25 21:47
kenduest: 因為 shell script 是文字檔案,最後由 shell 讀入執行 05/25 21:48
kenduest: 所以多了 setuid 權限多此一舉,只要 755 這類即可 05/25 21:48
kenduest: 2. script 要具備 root 權限,要使用 sudo 命令去執行 05/25 21:48
kenduest: 比方 sudo /path/myscript.sh 這樣才會有預期結果 05/25 21:49
kenduest: myscript.sh 本身才會有 root 身份權限可以運作 05/25 21:49
kenduest: 3. 若執行 /path/myscript.sh 自己本身提昇權限的話 05/25 21:49
kenduest: 可以自己於自己 script 判斷必要呼叫 sudo 來執行自己 05/25 21:50
kenduest: 示意程式碼截圖:http://i.imgur.com/AmFYYay.png 05/25 21:50
kenduest: 4. 搭配 crontab 時候,注意一下使用 visudo 設定時 05/25 21:51
kenduest: 沒有 requiretty 這類設定,因為背景執行程式是無終端機 05/25 21:51
kenduest: 5. 因為 sudo 會認絕對路徑判斷程式檔案是否被允許執行, 05/25 21:53
kenduest: 所以我提供的 script 程式碼檔案你也要自己調整一下 05/25 21:54
kenduest: 就是script放置到正確目錄位置,然後檔案本身內容 05/25 21:54
kenduest: sudo 後面就是傳完整的路徑位置,那sudo才會過關 05/25 21:54
bartschen: 請問4755的部份,不正確的原因是因為沒有編譯 05/25 21:55
bartschen: 成為binary嗎?謝謝 05/25 21:55
kenduest: binary 檔案 setuid 權限才會有實質功能 05/25 21:57
kenduest: 6. 簡單一點請用 root 帳號身份執行該 script 比較單純 05/25 22:03