2019独角兽企业重金招聘Python工程师标准>>>
在Ubuntu系统中因为一些原因我使用如下命令修改了/usr目录的拥有者权限:
chown -R root:root /usr
结果直接导致系统无法正常启动,通过跟踪系统启动日志/var/log/syslog找到如下失败原因:
[system] Activated service ‘org.freedesktop.ConsoleKit’ failed: The permission of the setuid helper is not correct
通过排查和跟踪,发现是/usr目录下的某个文件的权限属性被我修改失去了setuid位权限导致的,把这个文件的setuid权限改回去就可以了:
$ ls -l /usr/lib/dbus-1.0/dbus-daemon-launch-helper
-rwxr-xr– 1 root messagebus 294384 oct. 3 23:00 /usr/lib/dbus-1.0/dbus-daemon-launch-helper*
$ sudo chmod u+s /usr/lib/dbus-1.0/dbus-daemon-launch-helper
$ ls -l /usr/lib/dbus-1.0/dbus-daemon-launch-helper
-rwsr-xr– 1 root messagebus 294384 oct. 3 23:00 /usr/lib/dbus-1.0/dbus-daemon-launch-helper*
因为Linux中很多的系统服务和组件都是使用DBus总线来进行通讯的,需要依赖于DBus服务和守护进程来保证,所以当DBus服务无法正常启动时,就会影响很多系统组件的正常启动。 重启系统的DBus服务:
$ service dbus restart
日志信息应该如下:
dbus[918]: [system] Successfully activated service ‘org.freedesktop.PolicyKit1′
dbus[918]: [system] Activating service name=’org.freedesktop.ConsoleKit’ (using servicehelper)
本次事故再次提醒我,不要随意修改系统目录下的文件权限,尤其是一些特殊的权限,在不甚解其全部用途和意义之前,先进行调查研究清楚后再修改。否则很容易引起系统的宕机等不稳定问题。