如果chmod
具有root:root
用户:组权限,并且拥有220
的权限,root用户是否可以恢复执行权限?
一般来说,如何从Unix架构的angular度来解决这些鸡蛋问题呢?
我一直认为,root用户可以做所有事情,甚至可以执行具有000
权限的文件。
一般来说,如何从Unix架构的角度来解决这些鸡蛋问题呢?
如果你通过改变它的权限(不管什么原因)来破坏你的chmod,你仍然可以通过调用底层的OS钩子来修复它。 例如:
vagrant@vagrant-base-tfisher:~$ sudo -i root@vagrant-base-tfisher:~# which chmod /bin/chmod root@vagrant-base-tfisher:~# chown 220 /bin/chmod root@vagrant-base-tfisher:~# ls -la /bin/chmod -rwxr-xr-x 1 220 root 51760 Apr 1 2012 /bin/chmod root@vagrant-base-tfisher:~# chmod 220 /bin/chmod root@vagrant-base-tfisher:~# ls -la /bin/chmod --w--w---- 1 root root 51760 Apr 1 2012 /bin/chmod root@vagrant-base-tfisher:~# chmod 755 /bin/chmod -bash: /bin/chmod: Permission denied root@vagrant-base-tfisher:~# irb irb(main):002:0> File.chmod(0755,'/bin/chmod') => 1 irb(main):003:0> quit root@vagrant-base-tfisher:~# ls -la /bin/chmod -rwxr-xr-x 1 root root 51760 Apr 1 2012 /bin/chmod
是的,有一个非常简单的方法可以只使用基本工具从root恢复:
mv /bin/chmod /bin/chmod.wrongperms cp -p /bin/cat /bin/chmod cat /bin/chmod.wrongperms >! /bin/chmod rm /bin/chmod.wrongperms
使用-p
复制另一个可执行文件(例如cat
),保留755权限,并将chmod
的内容记录到其中,但不会更改权限。