我正在爲我在大學寫的一個小型項目編寫技術文檔。如何顯示腳本應該以root權限運行?如何在Linux中顯示腳本應該以root身份運行
我的主要問題是描繪場景的規範是什麼?我當然可以寫'用root權限運行腳本',但我想我已經在這裏問過了。
我應該做的:
Run the script with X:
./script.py X
PS:不要處理UNIX多前,所以請不要火焰:)
我正在爲我在大學寫的一個小型項目編寫技術文檔。如何顯示腳本應該以root權限運行?如何在Linux中顯示腳本應該以root身份運行
我的主要問題是描繪場景的規範是什麼?我當然可以寫'用root權限運行腳本',但我想我已經在這裏問過了。
我應該做的:
Run the script with X:
./script.py X
PS:不要處理UNIX多前,所以請不要火焰:)
你都應該說,腳本必須以root身份運行,並解釋如何做到這一點。
現在以root身份執行某些東西的最常用方法是sudo ./script.py X
。您的文檔應該將其視爲大多數用戶的推薦方法,除非他們知道更好或失敗。
另一種方法是su -c "./script.py X"
;如果它包含shell元字符,這需要X的嵌套引用。一個基本上等效的方法是在根shell提示下運行su
,然後運行./script.py X
。
如果你正在展示shell提示符,傳統的慣例是使用$
或%
在提示非root用戶的結束,#
根。但是,今天大多數unix用戶不知道這個約定,所以如果你使用它,你必須解釋它。
+1覆蓋所有情況。 – 2010-08-16 13:06:56
感謝您的回答。 – 2010-08-16 15:08:05
一兩件事你可以做的是顯示shell提示和根之間的區別和普通用戶一樣,如
$ ./script
# ./script
其中$是普通用戶提示符,#是根用戶提示符。
另一種選擇是使用「sudo」。
啊,我曾經想過#。 – 2010-08-16 12:33:07
如果腳本未以root身份運行,您是否希望腳本失敗?例程os.geteuid()
可以獲得正在運行腳本的用戶的有效用戶標識,而AFAIK,根的euid始終爲0.您可以執行檢查,如果用戶不是root用戶,則會打印出錯誤消息。
if os.geteuid() == 0: #or maybe if not os.geteuid()
print "Running as root!"
else:
print "Not running as root!"
這樣,代碼更自我記錄,所以你不必依靠你寫的自述這麼多。
你可以寫一個簡短的腳本來調用腳本(或原始腳本中這樣做),你測試一個DISPLAY
變量設置,如果gksu
可使用gksu或回落到su
否則。 (您也可以測試KDE的等價物,kdesu
,我想。)
gksu
的優點是它更好地與GUI集成在一起,如果您期望用戶點擊腳本(這對於對終端不熟悉的人)。
這個人可以在Unix相關的SE站點中被問到,因爲那裏的人可能更好地知道如何處理這種情況。它不依賴於程序設計,因此無論如何仍然留在 – 2018-01-18 17:15:51