chmod由root拥有,权限为220

时间:2013-04-26 14:55:09

标签: linux unix file-permissions

如果chmod具有root:root的用户:组权限,并且具有220权限,root用户是否可以恢复执行权限?

一般来说,如何从Unix架构的角度解决这些鸡蛋问题?

我一直认为,root用户可以执行所有操作,甚至执行具有000权限的文件。

2 个答案:

答案 0 :(得分:3)

  

一般来说,如何从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

答案 1 :(得分:2)

是的,有一种非常简单的方法可以使用基本工具以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),cat保留755权限,chmod内容{{1}}不会更改权限。