/usr/lib目录权限更改引发的各种错误

本文详细记录了解决Linux系统中多个组件故障的过程,包括更改目录属性导致的GDM登录界面消失、Chromium浏览器打开失败、sudo命令无法使用等问题。通过分析日志、定位问题、修改权限等步骤,最终逐一解决了这些问题。文章强调了Linux系统故障排查的重要性,以及在遇到问题时保持冷静、耐心分析和利用日志解决问题的态度。

原文地址:http://my.oschina.net/shelllife/blog/205228


摘要 为了解决virtualbox打开虚拟机失败的问题而更改了/usr/lib目录的属性,结果导致了一系列的系统问题。通过最后的分析,最终解决了这个问题,并深刻地认识到玩linux系统的折腾和需要的学习的态度和耐心。如果你拥有足够详细的日志,你就可以解决一切问题。

问题背景

在Debian7.4系统上使用chromium浏览器时,因为缺少Flash插件而无法播放在线视频,所以需要安装Adobe Flash Player,但是官网链接的deb包点击无反应,只好下载压缩包手动安装,成功后一切OK。然周末启动Virtualbox后,当我打开虚拟机时,出现了如下的错误:

当时我就郁闷啦,因为之前使用的还是好好的,怎么突然就冒出来这么个错误。上网搜了一圈,有说是virtualbox版本的问题,有说卸载重新按照就可以了,可是我按上面的方法折腾了一个多小时还是一样的,甚至下载了最新的4.3.8,安装后还是一样,让我非常无语。之后在网上看到一个说/usr目录属性变化引起的问题,回头看了一下/usr下的目录属性:

发现/usr/lib目录的owner是bruce用户,而不是root用户,结合问题提示,那就改成root吧:

1 sudochownroot:root /usr/lib -R
再次运行Virtualbox,问题解决了,放松了一下,可是这才是更大问题的起始。

蝴蝶效应

GDM登录界面不出现

当重启系统时,突然发现进不去GDM的登录界面了,一直在加载登录界面的黑屏状态。立马我就意识到自己上面的命令闯祸了。可是我不知道这条命令到底会影响到GDM或者Xorg组件的什么地方,我只是修改了一下目录和文件的拥有者而已。通过字符终端登入系统,把拥有者改回bruce,不行;删掉Virtualbox,还是不行;把/usr/lib目录的权限全部改成777,还是不行.......看dmesg信息没有什么错误提示呀,折腾了两个多小时,到了凌晨一点到了,我已经打算把Xorg图形组件全删掉不用了,甚至直接重装Debain系统,不过要到第二天。

考虑了一晚上加一个白天,觉得不能这么随便放弃这个整了那么久的系统,肯定会有解决办法的,认识到前一晚上太急躁和着急了。静下心来分析,然后想要了日志文件,查看syslog日志文件,终于找到了错误根源:

不过我还是不知道怎么解决,只能google了,这回关键字很明确,很快就找到了问题所在和解决办法:

/usr/lib/dbus-1.0/dbus-daemon-launch-helper的权限被我改掉了,而正确的权限应该是:

所以解决的办法就是,将权限改回来:

1 sudochmodu+s /usr/lib/dbus-1.0/dbus-daemon-launch-helper
再次重启系统,终于又见到了GDM的登录界面了。

Chromium打开失败

正当我以为一切恢复正常,打算上OSC浏览下新闻时,突然发现chromium浏览器打不开了,于是在shell下运行,知道错误在哪了,还是/usr/lib下文件属性修改导致的,使用sudo修改,可是发现sudo竟然用不了,好吧,先切换到root解决这个问题再说:

sudo命令无法使用

OK,终于打开OSC的网页了,继续google刚才的sudo用不了的问题,结果还是因为属性修改的问题,/usr/lib/sudo目录下的文件权限应该是644,继续修改:

改完后,可以使用sudo命令了。

问题结束

解决了这些连环问题后,再次安装回我的Virtualbox,可是打开虚拟机时竟然还是提示我错误。。。。。:

这次不用google了,肯定还是/usr/lib目录权限不对,根据错误提示,将777的权限改回到755模式,终于清静了。

PS:

正如我对朋友说的,玩linux系统真的需要折腾。这次的问题,虽然主要是我自己造成的,可是谁又能预料到小小的行为会对整个系统的其他组件运行正常起到决定性的作用呢?这里面,最关键的是要有去折腾,去想方设法解决问题的态度和耐心,而不是像我最初的心态一样重装系统,从头再来(我感觉这是用windows时养成的思维)。只要你静下心去找原因,去分析,去看日志,去搜索和求助,问题从来就不是难题。努力去解决一个问题的过程,可以学习到很多的东西,结果也是令人很有满足感的。

这次的问题和解决过程就让我学到了很重要的两点:

  1. 分析日志来定位问题,尤其是Linux系统的syslog日志,那真是太详细了,以前只知道用dmesg。如果你拥有足够详细的日志,你就可以解决一切问题。
  2. 仔细阅读程序的错误输出,然后学会分析和定位问题所在,如果我在仔细和耐心一点,也许就不会花这么久时间解决Virtualbox的问题了。

┌──(root㉿HUC)-[/usr/lib/vmware/lib/libglib-2.0.so.0] └─# vmware shell-init: 获取当前目录时出错: getcwd: 无法访问父目录: 没有那个文件或目录 sh: 0: getcwd() failed: No such file or directory sh: 0: getcwd() failed: No such file or directory sh: 0: getcwd() failed: No such file or directory [AppLoader] Cannot get library dependencies. (10c) [AppLoader] Fallback to use all shipped libraries. [AppLoader] Fail to load the library. libxml2.so.2: cannot open shared object file: No such file or directory [AppLoader] LD_LIBRARY_PATH= /usr/lib/vmware/lib/libgdk_pixbuf-2.0.so.0 /usr/lib/vmware/lib/libXdamage.so.1 /usr/lib/vmware/lib/libpcsclite.so.1 /usr/lib/vmware/lib/libgailutil-3.so.0 /usr/lib/vmware/lib/librsvg-2.so.2 /usr/lib/vmware/lib/libXau.so.6 /usr/lib/vmware/lib/libgcr-base-3.so.1 /usr/lib/vmware/lib/libgdk-3.so.0 /usr/lib/vmware/lib/libp11-kit.so.0 /usr/lib/vmware/lib/libcrypto.so.3 /usr/lib/vmware/lib/libatk-bridge-2.0.so.0 /usr/lib/vmware/lib/libXfixes.so.3 /usr/lib/vmware/lib/libvmware-setup-helper.so /usr/lib/vmware/lib/libSM.so.6 /usr/lib/vmware/lib/libgcr-ui-3.so.1 /usr/lib/vmware/lib/libvmware-netcfg.so /usr/lib/vmware/lib/libssl.so.3 /usr/lib/vmware/lib/libpango-1.0.so.0 /usr/lib/vmware/lib/libjpeg.so.62 /usr/lib/vmware/lib/libsecret-1.so.0 /usr/lib/vmware/lib/libgck-1.so.0 /usr/lib/vmware/lib/libvmware-fuseUI.so /usr/lib/vmware/lib/libXext.so.6 /usr/lib/vmware/lib/libtasn1.so.6 /usr/lib/vmware/lib/libfuse.so.2 /usr/lib/vmware/lib/libaio.so.1 /usr/lib/vmware/lib/libgvmomi.so /usr/lib/vmware/lib/libpangomm-1.4.so.1 /usr/lib/vmware/lib/libXcomposite.so.1 /usr/lib/vmware/lib/libXft.so.2 /usr/lib/vmware/lib/libbasichttp.so /usr/lib/vmware/lib/libcairomm-1.0.so.1 /usr/lib/vmware/lib/libxcb-shm.so.0 /usr/lib/vmware/lib/libz.so.1 /usr/lib/vmware/lib/libfreetype.so.6 /usr/lib/vmware/lib/libgdkmm-3.0.so.1 /usr/lib/vmware/lib/libvmplayer.so /usr/lib/vmware/lib/libcurl.so.4 /usr/lib/vmware/lib/libpcre.so.1 /usr/lib/vmware/lib/libcairo.so.2 /usr/lib/vmware/lib/libvmware-vmblock-fuse.so /usr/lib/vmware/lib/libgio-2.0.so.0 /usr/lib/vmware/lib/libffi.so.7 /usr/lib/vmware/lib/libICE.so.6 /usr/lib/vmware/lib/libvmware-app-control.so /usr/lib/vmware/lib/libatspi.so.0 /usr/lib/vmware/lib/libvmware-mount.so /usr/lib/vmware/lib/libtiff.so.6 /usr/lib/vmware/lib/libcroco-0.6.so.3 /usr/lib/vmware/lib/libdbus-1.so.3 /usr/lib/vmware/lib/libvmware-zenity.so /usr/lib/vmware/lib/libvmware-gksu.so /usr/lib/vmware/lib/libpixman-1.so.0 /usr/lib/vmware/lib/libglibmm-2.4.so.1 /usr/lib/vmware/lib/libfontconfig.so.1 /usr/lib/vmware/lib/libgcrypt.so.20 /usr/lib/vmware/lib/libxcb.so.1 /usr/lib/vmware/lib/libpangoft2-1.0.so.0 /usr/lib/vmware/lib/libcairo-gobject.so.2 /usr/lib/vmware/lib/libgiomm-2.4.so.1 /usr/lib/vmware/lib/libXtst.so.6 /usr/lib/vmware/lib/libgmodule-2.0.so.0 /usr/lib/vmware/lib/libgdk_pixbuf_xlib-2.0.so.0 /usr/lib/vmware/lib/libXcursor.so.1 /usr/lib/vmware/lib/libstdc++.so.6 /usr/lib/vmware/lib/libvte-2.91.so.0 /usr/lib/vmware/lib/libharfbuzz.so.0 /usr/lib/vmware/lib/libpangocairo-1.0.so.0 /usr/lib/vmware/lib/libatkmm-1.6.so.1 /usr/lib/vmware/lib/libXss.so.1 /usr/lib/vmware/lib/libvmware-enter-serial.so /usr/lib/vmware/lib/libgpg-error.so.0 /usr/lib/vmware/lib/libvmware-modconfig.so /usr/lib/vmware/lib/libgthread-2.0.so.0 /usr/lib/vmware/lib/libglibmm_generate_extra_defs-2.4.so.1 /usr/lib/vmware/lib/libXi.so.6 /usr/lib/vmware/lib/libvmwareui.so /usr/lib/vmware/lib/libxml2.so.16 /usr/lib/vmware/lib/libXrender.so.1 /usr/lib/vmware/lib/libX11.so.6 /usr/lib/vmware/lib/libgobject-2.0.so.0 /usr/lib/vmware/lib/libXinerama.so.1 /usr/lib/vmware/lib/libvmware-tray.so /usr/lib/vmware/lib/liblicenseTool.so /usr/lib/vmware/lib/libXrandr.so.2 /usr/lib/vmware/lib/libsigc-2.0.so.0 /usr/lib/vmware/lib/libgtk-3.so.0 /usr/lib/vmware/lib/libvmware-vprobe.so /usr/lib/vmware/lib/libvmware.so /usr/lib/vmware/lib/libvmwarebase.so /usr/lib/vmware/lib/libXdmcp.so.6 /usr/lib/vmware/lib/libvnetlib.so /usr/lib/vmware/lib/libatk-1.0.so.0 /usr/lib/vmware/lib/libpng16.so.16 /usr/lib/vmware/lib/libcds.so /usr/lib/vmware/lib/libvmware-modconfig-console.so /usr/lib/vmware/lib/libgtkmm-3.0.so.1 /usr/lib/vmware/lib/libepoxy.so.0 /usr/lib/vmware/lib/libgcc_s.so.1 /usr/lib/vmware/lib/libsvga3dsw.so /usr/lib/vmware/lib/libglib-2.0.so.0
11-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值