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

来源:互联网 发布:lcd1602数据手册 编辑:程序博客网 时间:2024/05/17 21:56

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


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

目录[-]

  • 问题背景
  • 蝴蝶效应
  • GDM登录界面不出现
  • Chromium打开失败
  • sudo命令无法使用
  • 问题结束
  • 问题背景

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

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

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

    1sudo chown root: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的权限被我改掉了,而正确的权限应该是:

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

    1sudo chmod u+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的问题了。

    0 0