使用consolehelper獲得root權限

此頁由 Linux Wiki用戶Chenxing 於 2008年7月2日 (星期三) 07:23 的最後更改。

從 Linux Wiki

提示:此文已超过 16 年(5986 天)未更新,如发现内容过时或有误,欢迎改进:)

FedoraMandriva等Linux發行版中,並沒有配置sudo甚至gksu,但系統管理程序仍可在普通用戶的環境中通過詢問root密碼來提升權限執行。這就是consolehelper的功能。[1]

consolehelper簡介

使用consolehelper,可以讓經過授權(見PAM)的普通用戶以root權限執行程序。以shutdown程序為例[2]

  • 創建軟鏈接 /usr/bin/shutdown -> /usr/bin/consolehelper
  • 普通用戶執行shutdown時,$PATH中並沒有/sbin,故只能執行/usr/bin/shutdown
  • 由於軟鏈接的存在,consolehelper被調用,consolehelper調用驗證等過程,最終以root身份執行/sbin/shutdown

配置方法

su到root帳戶中後,先確定你的程序的程序名,如nautilus-super

#sudo ln -s /usr/bin/consolehelper /usr/bin/nautilus-super
Note.gif
注意:
用來調用的程序名中一定不要有大寫字母,否則執行時會報錯:The password you typed is invalid. Please try again[3]

接着,創建、編輯/etc/pam.d/nautilus-super,內容是:

#%PAM-1.0
auth      sufficient  /lib/security/pam_rootok.so
auth      sufficient  /lib/security/pam_timestamp.so
auth      required    /lib/security/pam_stack.so service=system-auth
session   required    /lib/security/pam_permit.so
session   optional    /lib/security/pam_xauth.so
session   optional    /lib/security/pam_timestamp.so
session   required    /lib/security/pam_limits.so
account   required    /lib/security/pam_permit.so

也可以模仿/etc/pam.d/目錄下的其它文件建立pam配置文件。

最後創建、編輯文件/etc/security/console.apps/nautilus-super,內容為:

USER=root
PROGRAM=/usr/bin/nautilus
SESSION=true

上述配置完成後,普通用戶執行nautilus-super就可以以root用戶打開文件管理器了。


參考資料

  1. http://fedoranews.org/contributors/matt_hansen/nautilus/
  2. consolehelper的man文檔
  3. http://linux.derkeiler.com/Mailing-Lists/Fedora/2005-01/0684.html

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
個人工具
简体繁体转换