linux系统polkit无法启动

linux系统polkit无法启动linux 系统 polkit 无法启动 polkit 服务起不来

大家好,欢迎来到IT知识分享网。

polkit 是linux系统中的一个身份认证管理工具 (Authorization Manager ),在启动一些服务时,有可能会遇到 polkit 不能正常启动运行的情况,会报出以下之类错误:

此时发现polkit并没有处于正常的激活状态,由此可能会导致其他一些服务也不能正常启动。

linux系统polkit无法启动

#查看 polkit 状态 systemctl status polkit #启动 polkit systemctl start polkit #检查是否安装了 polkit yum list installed | grep polkit #安装 polkit yum install polkit #查看报错信息 journalctl -xe

1. 加载共享库时出错

1.1 错误表现

  • 查看polkit的运行状态发现是failed,且报错是加载共享库时出错:libstdc++.so.6:无法从共享对象映射段:权限被拒绝

linux系统polkit无法启动

1.2 解决办法

1.2.1 查看 libstdc++.so.6 库

find / -name libstdc++.so.6 ll -n /usr/lib64/libstdc++.so.6

linux系统polkit无法启动

1.2.2 如果没有安装 libstdc++.so.6 库

  • 查看哪个安装包有这个库文件
yum whatprovides libstdc++.so.6

linux系统polkit无法启动

  • 安装库
yum -y install libstdc++-4.8.5-44.el7.i686

linux系统polkit无法启动

  • 新安装的 libstdc++.so.6 库路径是 /usr/lib/libstdc++.so.6

linux系统polkit无法启动

注:libstdc++.so.6 库有一个就可以

1.2.3 切换 libstdc++.so.6 链接库

# 进入lib64库 cd /usr/lib64/ # 查看libstdc++.so.6 链接库 ll

本次报的 加载共享库时出错:libstdc++.so.6:无法从共享对象映射段:权限被拒绝 错误是因为 libstdc++.so.6.0.25 库有问题,这个库不知道是怎么多出来的,切换回 libstdc++.so.6.0.19 就可以

linux系统polkit无法启动

  • 修改软连接
rm -rf libstdc++.so.6 ln -s libstdc++.so.6.0.19 libstdc++.so.6 ll -n libstdc++.so.6

linux系统polkit无法启动

1.2.4 启动 polkit

1.2.4.1 运气好的话可能直接就成功了
systemctl start polkit.service systemctl status polkit.service

linux系统polkit无法启动

1.2.4.2 但也有可能完全没用,此时先尝试手动重启
/usr/lib/polkit-1/polkitd --no-debug & systemctl start polkit

启动命令是可以执行的,不会再报原来的错,但其实只有手动重启的那一下成功了,程序并不会持续运行,查看运行状态的话发现不再是 failed,变成了 inactive (dead)

linux系统polkit无法启动

  • 此时需要先启动 dbus 服务,保证正常运行
systemctl restart dbus.service systemctl status dbus

linux系统polkit无法启动

  • 然后再尝试启动polkit,应该就可以正常运行了
systemctl start polkit.service

linux系统polkit无法启动

此时再尝试启动其他受影响的服务就可以了。

2. 重装polkit再启动

yum reinstall polkit systemctl start polkit.service

linux系统polkit无法启动

3. 解决办法

  • 确保存在polkitd系统用户和组
#检查并有条件的创建用户/组 getent group polkitd >/dev/null && echo -e "\e[1;32mpolkitd group already exists\e[0m" || { groupadd -r polkitd && echo -e "\e[1;33mAdded missing polkitd group\e[0m" || echo -e "\e[1;31mAdding polkitd group FAILED\e[0m"; } getent passwd polkitd >/dev/null && echo -e "\e[1;32mpolkitd user already exists\e[0m" || { useradd -r -g polkitd -d / -s /sbin/nologin -c "User for polkitd" polkitd && echo -e "\e[1;33mAdded missing polkitd user\e[0m" || echo -e "\e[1;31mAdding polkitd user FAILED\e[0m"; } 

linux系统polkit无法启动

#检查并有条件的重置用户/组和所有权 rpm -Va polkit\* && echo -e "\e[1;32mpolkit* rpm verification passed\e[0m" || { echo -e "\e[1;33mResetting polkit* rpm user/group ownership & perms\e[0m"; rpm --setugids polkit polkit-pkla-compat; rpm --setperms polkit polkit-pkla-compat; } 

linux系统polkit无法启动

#重启机器,并确保polkit已重新连接到dbus /usr/lib/polkit-1/polkitd --no-debug & reboot 
  • 重启之后,发现还是存在问题,去卸载polkit包
查看polkit安装版本 yum list installed | grep polkit rpm -ef polkit.x86_64 --nodeps

linux系统polkit无法启动

  • 卸载掉包之后重装polkit包,重新加载服务
yum -y install polkit systemctl daemon-reload #如果正常的话说明问题解决了 #如果还是报错,就尝试将polkit包卸载不重装,然后在重新加载服务试试

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/148694.html

(0)
上一篇 2025-03-29 13:45
下一篇 2025-03-29 14:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信