使用consolehelper获得root权限

此页由Linux Wiki用户Chenxing于2008年7月2日 (星期三) 07:23的最后更改。

出自Linux Wiki

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

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

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

反馈与讨论

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