Shell-Script
啟動腳本的自動 sudo 權限
我需要在啟動時執行一個腳本,我知道這需要在
init.d
文件夾中完成。現在這個腳本需要sudo
權限,正常執行時會提示使用者輸入 sudo 密碼。是否可以讓我的啟動腳本在自動授予 sudo 權限的情況下執行?我需要給使用者無密碼
sudo
權限嗎?理想情況下,我會讓它在沒有任何使用者互動的情況下執行。
通常,系統預設執行具有完全 root 訪問權限的啟動腳本,因此您無需執行任何操作。
請注意,腳本位置取決於
init
系統中使用的包。對於經典的 SysVinit,啟動腳本通常位於目錄中,並
/etc/init.d
在目錄中創建指示它們在啟動/關閉順序中的位置的符號連結/etc/rc<number>.d/
,其中<number>
指示腳本應該執行的執行級別。(執行級別是一種“整體系統狀態”:在 RedHat 風格的系統上,如果啟用了 GUI 登錄,則預設執行級別為 5,否則為 3。在 Debian 風格的系統上,它往往總是 3。)更新符號連結
/etc/rc<number>.d/
可能很乏味,因此通常有一個工具可以為您完成。最常見的此類工具是chkconfig
:它要求您在腳本的開頭放置一些特殊格式的註釋(請參閱man chkconfig
適用於您的發行版的詳細資訊)。然後,您可以將腳本放入/etc/init.d
並執行sudo chkconfig --add <your script name>
.如果您的系統使用更新的 SysVinit 替代品,例如
upstart
或systemd
,它們可能包含 SysVinit 兼容系統,因此上述說明可能仍然適用;但是您也應該考慮學習新的方法,因為 SysVinit 被認為是陳舊的並且對於現代多核系統來說不是最佳的。