作者:黑殿
你可能已經注意到了,在我們以普通用戶登錄運行一些系統程序時,系統會彈出對話框讓你輸入root用戶的密碼,比如:Yumex就會這樣做。在UBUNTU下可以用gksu+命令來實現,但是Fedora8沒有這個軟體。我去GKSU的官網看過,他們也沒有提供for Fedora8的包。(只有For fedora4的,但是那個安好了也用不了)。還有KDE的桌面環境可以用KDESU,這個我沒試過。
但是gksu並不是GNOME的一部分,並不是官方所支持的。可能有些安全隱患吧……所以Fedora8下沒有gksu。
那我們在訪問系統程序時,確實能看到彈出對話框來讓我們輸入root密碼,Fedora是怎麼實現的呢?
Fedora下有個叫consolehelper的東東就是用來做這個事的。
你可以用man命令來查看下用法,不過我感覺那個MAN里說的不是太詳細,所以在一堆googling之後,準備寫一點關於這個consolehelper用法的東西,廢話不說了,進入正題!
目標:製作root許可權的nautilus,通過圖標點擊,然後彈出對話框,提示用戶輸入密碼,確認后獲得root許可權的nautilus。Setp1.創建一個consolehelper的軟鏈接:
ln -s /usr/bin/consolehelper /usr/local/bin/root_nautilus
Setp2.進入/etc/pam.d/,新建一個叫root_nautilus的文件
vi /etc/pam.d/root_nautilus
在文件內放入以下內容:
#%PAM-1.0 auth include config-util account include config-util session include config-util |
Setp3.進入/etc/security/console.apps/下,建立文件root_nautilus
vi /etc/security/console.apps/root_nautilus
並輸入以下內容:
USER=root PROGRAM=/usr/bin/nautilus #這個就是你要以root許可權運行的程序名 SESSION=true |
Setp4.vi /usr/share/applications/root_nautilus.desktop
然後輸入:
[Desktop Entry] Encoding=UTF-8 Name=Root File Manager GenericName=Nautilus Categories=Application;System;X-Red-Hat-Base Comment=Launches Nautilus As Root Icon=password.png Exec=/usr/local/bin/root_nautilus --browser Type=Application Terminal=false |
Setp5.在應用程序里的系統工具里就可以找到你建立的快捷方式了。運行它看看效果吧!
PS:你也可以在桌面建立快捷方式,內容就填root_nautilus --browser。
有個需要特別注意的地方是,應用程序的參數應該加在快捷方式里,而不是加在/etc/security/console.apps/root_nautilus里。網上我找的所有文章都說是加在/etc/security/console.apps/root_nautilus里,可能是由於版本變化的原因吧。其實這樣的改進更優秀,因為你不必再為不同的參數配置不同的文件,你只需要建不同的快捷方式就行了!