我在bash上爲Linux上的應用程序編寫安裝腳本。從root帳戶(Linux)Bash腳本和用戶主頁
該腳本將一些文件複製到/ usr/bin和/ usr/share中,因此它需要由root用戶執行,並且在$ HOME dir中爲配置文件創建一個隱藏目錄。
這是問題:如果一個普通用戶想要安裝該程序,他需要是root用戶。但是如果他是root的話,那麼$ HOME目錄將是/ root /而不是/ home/username。
我在bash上爲Linux上的應用程序編寫安裝腳本。從root帳戶(Linux)Bash腳本和用戶主頁
該腳本將一些文件複製到/ usr/bin和/ usr/share中,因此它需要由root用戶執行,並且在$ HOME dir中爲配置文件創建一個隱藏目錄。
這是問題:如果一個普通用戶想要安裝該程序,他需要是root用戶。但是如果他是root的話,那麼$ HOME目錄將是/ root /而不是/ home/username。
...此外,如果UserA安裝軟件,但UserB運行它,UserB將不具有/home/UserB
下的隱藏目錄。此外,/home/UserA
下的隱藏目錄將由root擁有,而不是userA。
因此,您需要讓應用程序創建隱藏的目錄,而不是安裝程序。
另一種可能的選擇是不安裝在系統目錄中;一個可能的替代位置是/usr/local
。但是,即使這可能需要root權限。考慮它是否可以安裝在其他地方,以及它如何定位其材料。
但是,要求安裝root權限並不是世界的盡頭 - 對於某些人來說這是一種麻煩,但並不是完全無序。但要求每個使用root權限的用戶都是亂七八糟的 - 如果每個使用它的人都需要運行安裝程序,那就太糟糕了。
最後一點(現在):如果您使用sudo
,即使您獲得root權限,也不會更改$ HOME的值。但是,要求使用您的應用程序的所有人擁有sudo
權限也不是好事。
必須使用$HOME
?也許你可以提示輸入用戶名,然後安裝到~$username
?
您可以創建一個用於運行該命令的新組,並將sudo設置爲僅允許該組僅運行該命令。 查看visudo – 2009-02-26 15:23:44
因此,他可以簡單地要求用戶使用sudo進行安裝,以便它有權複製/ usr/bin中的文件,但仍具有正確的$ HOME值? – Wookai 2009-02-26 15:23:55