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)
本次事故再次提醒我,不要隨意修改系統目錄下的文件權限,尤其是一些特殊的權限,在不甚解其全部用途和意義之前,先進行調查研究清楚后再修改。否則很容易引起系統的宕機等不穩定問題。