如果chmod
user:group 权限为root:root
,并且权限为220
,root用户能否恢复执行权限?
一般来说,从 Unix 体系结构的角度应该如何解决这些鸡蛋问题?
我一直认为,root 用户可以做任何事情,甚至可以执行具有000
权限的文件。
如果chmod
user:group 权限为root:root
,并且权限为220
,root用户能否恢复执行权限?
一般来说,从 Unix 体系结构的角度应该如何解决这些鸡蛋问题?
我一直认为,root 用户可以做任何事情,甚至可以执行具有000
权限的文件。
一般来说,从Unix体系结构的角度应该如何解决这些鸡蛋问题?
如果您通过更改其权限(无论出于何种原因)来破坏您的 chmod,您仍然可以通过调用底层操作系统挂钩来修复它。例如:
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
复制另一个可执行文件(cat
此处以示例方式)-p
保留 755 权限,并将cat
其内容chmod
写入其中不会更改权限。