我的桌面上有 Suse Linux。所以我是 root 和「普通」用戶。通常,例如啟動 tomcat 或安裝/刪除我應該使用sudo
或切換到超級用戶的程式。但我在.bashrc
、 路徑.profile
等中定義了許多別名。
是否可以為普通用戶分配超級用戶的一些權限?例如安裝程式?
答案1
是的,但這是你能做的最糟糕的事情。您的作業系統中有不同的使用者俱有不同的權限。這是故意的。永久授予使用者 root 權限會損害系統的安全性。 (還記得 Windows 9x 和所有病毒嗎?)
我猜執行命令sudo
不需要任何自訂內容,除非您執行/bin/sh
(shell)。
為了達到您想要的效果,您可以執行以下操作:
您可以將您的內容從系統移出~/.bashrc
或~/.profile
移入系統/etc/bash/bashrc
,/etc/profile
甚至更好地將它們放在單獨的腳本中/etc/profile.d/mystuff.sh
(不要忘記chmod +x /etc/profile.d/mystuff.sh
)。這些文件將為每個登入會話執行。
然後啟動 root 會話su -
,-傳遞給的(減號)符號su
將執行登入會話,因此將執行上述文件。根據您的 Linux 發行版,您可能需要撥打電話sudo su -
。
完成 root 會話後,最好logout
保留 root 權限。
如果您只需要特定二進位檔案的 root 權限,還有另一種方法,稱為有效 UID。例如,您可以將其用於mtr
二進位:
chmod a+s `which mtr`
這樣,當您執行mtr
二進位檔案時,它將獲得擁有該二進位檔案的使用者的有效權限 - 在本例中為 root ( chown root /path/to/mtr
)。它會節省您輸入 sudo 的時間,但您應該仔細選擇要授予 root 權限的二進位。如果您不知道風險,那就很危險。最好使用第一個選項。
答案2
tomcat 的啟動應該在初始化腳本。如果您想授予一組使用者(重新)啟動 tomcat 的權利,請新增一行/etc/sudoers使用visudo
。這可能看起來像:
%tomcatcontrol localhost = NOPASSWD : /etc/init.d/tomcat *
將 localhost 替換為您的電腦的名稱。然後該群組的每個用戶湯姆貓控制將能夠發出:
sudo /etc/init.d/tomcat restart
(或狀態、或停止、或開始)。
這就是 sudo 的用途。如果您想使用 root 帳戶工作更長時間,您可以這樣做su -
。如果您希望其他使用者實際管理 tomcat 內容(使用者 tomcat 擁有的檔案),您可以允許su - tomcat
一個使用者或一組使用者。
至於你的別名 - 我認為 OpenSuSE 有 /etc/profile.local 用於此目的:在那裡你可以放置對每個用戶都有效的內容。