---关于.* 匹配问题(Linux/Unix系统管理员必看)

1351阅读 0评论2012-05-31 bzhao
分类:系统运维


没时间的读者直接看第7结论就可以了!

1.  今天我的同时找我讲到他的Ubuntu虚拟机,编译不正常,提升权限不的对了,我想肯定他们乱用了sudo的命令引致。 于是给了他一个治疗的命令方子: 
     1)  cd 
     2)  sudo chown -R realtop.realtop *  (注意空格,realtop 是他的用户名)
 2. 他没多久报告问题解了,没多久报告不能sudo poweroff关机了

 3. 我的cd /到他的系统的根目录,然后ls -l看到文件目录的属主都变成了这个realtop,

4. 然后history看他的操作命令序列:看到 ls  cd /home sudo chown -R realtop.realtop ....

5. 后来经过沟通,知道我误解了我说home目录的意思了,cd 到home目录不是指/home目录本身啊!
    但是即便如此也不会有这个结果。

6. 找个不要的虚拟机,按照我的上面序列,演练了一下,果然如此。从终端打印也能看出不少../usr/bin/......的路径,  说明跑到上级目录了(就是 /目录了),幸好不是删除命令。 通过chown -R  root.root /boot /usr /bin /sbin /lib /etc  修复了系统文件,chmod 4755 /usr/bin/sudo 给sudo设置用户id的属性


7. 结论.* 可以匹配..(上级目录), 所以要小心使用, 特别是在删除移动和更改系统文件属性操作时候。
     正确的做法是:cd; chown -R bill.bill * .[^.]*
上一篇:---Android ported to Loongson
下一篇:ubuntu12.04(64位)下构建Android-4.0.0_r1开发环境