[置顶] 泰晓 RISC-V 实验箱,配套 30+ 讲嵌入式 Linux 系统开发公开课
升级 Ubuntu 14.04 后彻底解决权限问题
Wu Zhangjin 创作于 2014/08/23
问题描述
从Ubuntu 12.10平滑升级到Ubuntu 14.04 (LTS)后发现在图形界面所有需要root权限的操作都无法工作,包括网络设置、软件安装等等,非常烦恼。
例如,在安装软件时会有该问题:
(org.freedesktop.PolicyKit.Error.Failed: (‘system-bus-name’, {‘name’: ‘:1.104′}): org.debian.apt.install-or-remove-packages
问题分析
查找资料后发现是PolicyKit的问题,可以临时通过gksu授权,不过这个并不是所有情况下都有用,比如说网络设置的NetworkManager服务,杀掉后通过gksu授权也不管用。
另外,也发现从 13.10 开始就已经有该问题。
解决方案
通过苦苦搜寻,终于发现有一个彻底的解决办法,那就是修改登录管理器的 PAM 认证配置文件,例如 lxde 用了 lxdm 登录管理器,其对应配置为:
/etc/pam.d/lxdm
。在该文件开头的
#%PAM-1.0
后面加入如下两行后,重启 X 即可:session required pam_loginuid.so session required pam_systemd.so`
类似地,如果用了其他登录管理器,比如 gdm 和 lightdm,可以同样修改,例如:
/etc/pam.d/gdm
,/etc/pam.d/lightdm
。修改以后一切权限问题都OK了。
从修改来看,可能是 Ubuntu 13.10 之后的登录认证方式有所变化,用到了
pam_loginuid
和pam_systemd
:pam_loginuid - Record user's login uid to the process attribute The pam_loginuid module sets the loginuid process attribute for the process that was authenticated. This is necessary for applications to be correctly audited. This PAM module should only be used for entry point applications like: login, sshd, gdm, vsftpd, crond and atd. There are probably other entry point applications besides these. pam_systemd registers user sessions in the systemd login manager systemd-logind.service(8), and hence the systemd control group hierarchy.
注:我们在 Ubuntu升级:从12.10到14.04 LTS 一文也对此进行了说明。
相关参考资料:
猜你喜欢:
- 我要投稿:发表原创技术文章,收获福利、挚友与行业影响力
- 知识星球:独家 Linux 实战经验与技巧,订阅「Linux知识星球」
- 视频频道:泰晓学院,B 站,发布各类 Linux 视频课
- 开源小店:欢迎光临泰晓科技自营店,购物支持泰晓原创
- 技术交流:Linux 用户技术交流微信群,联系微信号:tinylab
支付宝打赏 ¥9.68元 | 微信打赏 ¥9.68元 | |
请作者喝杯咖啡吧 |