没时间的读者直接看第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 * .[^.]*
阅读(1386) | 评论(0) | 转发(0) |