centos7启动服务uthorization not available. Check if polkit service is running or see debug message for

  • 2
  • 50 次浏览
  • A+
所属分类:DevOps Linux基础

事件经过


有一次远程帮助别人解决的一个问题
当时那个人给发了一个samba服务启动报错的截图

centos7启动服务uthorization not available. Check if polkit service is running or see debug message for

报错信息中提到了一个polkit服务,下面先普及一下关于这个服务的知识

  • polkit是一个应用程序级别的工具集,通过定义和审核权限规则,实现不同优先级进程间的通讯。
  • 控制决策集中在同一的框架之中,决定低优先级进程是否有权访问高优先级进程
  • polkit在系统层级进行权限控制,提供了一个低优先级进程和高优先级进程进行通信的系统
  • 在使用systemcd 225的时候会有这类错误异常bug,但是到systemd 229的时候修复了。错误原因是当systemd启动了这个服务的时候policykit -1的postions杀掉了polkit的守护进程。在RHEL,CentOS,ubuntu,debain系统上均可以看到相关bug报告反馈。
centos7启动服务uthorization not available. Check if polkit service is running or see debug message for

还是一样的错误,鄙人也从没遇到过这种错误,于是上网搜了一个关于这种报错的解决方案,经过实际操作后,并没有什么效果。

大概总结就是:重启系统、安装polkitt包、创建polkit用户等等。

centos7启动服务uthorization not available. Check if polkit service is running or see debug message for

这是红帽上面的一些评论,遇到这种问题真的靠运气去解决吗?

下面是鄙人成功解决后的一些步骤,可能是运气吧,具体为什么还在研究中…

问题解决(不是唯一)

  1. 查看错误日志
#启动服务的时候 去查看message日志
taif -f /var/log/message
dbus-daemon: dbus[996]: [system] Activating via systemd: service name='org.freedesktop.PolicyKit1' unit='polkit.service'
dbus[996]: [system] Activating via systemd: service name='org.freedesktop.PolicyKit1' unit='polkit.service'
systemd: Starting Authorization Manager...
systemd: polkit.service: main process exited, code=exited, status=1/FAILURE
systemd: Failed to start Authorization Manager.
systemd: Unit polkit.service entered failed state.
dbus-daemon: dbus[996]: [system] Failed to activate service 'org.freedesktop.PolicyKit1': timed out
dbus[996]: [system] Failed to activate service 'org.freedesktop.PolicyKit1': timed out

2. 然后确保存在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"; }

#检查并有条件的重置用户/组和所有权
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; }

#重启机器,并确保polkit已重新连接到dbus
/usr/lib/plokit-1/plokitd 
-------------------------------------------------------------------
reboot

3. 重启之后,发现还是存在问题,去卸载polkit包

rpm -ef polkit包 --nodeps

4. 卸载掉包之后重装polkit包,重新加载服务

因为是远程操作,忘记截图了,所以就这样写了。

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

以上就我个人对polkit问题的一些总结,如果你用了这种方法还是没有解决掉问题,可以联系我也可以查找官网的一些其他解决方案。


redhat对此问题的解决方案:https://access.redhat.com/solutions/1543343

bug反馈:https://bugs.launchpad.net/ubuntu/+source/policykit-1/+bug/1447654

https://github.com/coreos/bugs/issues/462

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  0   博主  0

    • zxy zxy Admin

      222

      • 222 222 0

        222是