2013-04-26 103 views
2

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

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

我一直认为,root用户可以做所有事情,甚至可以用000权限执行文件。

回答

3

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

如果你通过改变它的权限(无论什么原因)来破坏你的chmod,你仍然可以通过调用基础的OS挂钩来修复它。例如:

[email protected]:~$ sudo -i 
[email protected]:~# which chmod 
/bin/chmod 
[email protected]:~# chown 220 /bin/chmod 
[email protected]:~# ls -la /bin/chmod 
-rwxr-xr-x 1 220 root 51760 Apr 1 2012 /bin/chmod 
[email protected]:~# chmod 220 /bin/chmod 
[email protected]:~# ls -la /bin/chmod 
--w--w---- 1 root root 51760 Apr 1 2012 /bin/chmod 
[email protected]:~# chmod 755 /bin/chmod 
-bash: /bin/chmod: Permission denied 
[email protected]:~# irb 
irb(main):002:0> File.chmod(0755,'/bin/chmod')                                        
=> 1 
irb(main):003:0> quit 
[email protected]:~# ls -la /bin/chmod 
-rwxr-xr-x 1 root root 51760 Apr 1 2012 /bin/chmod 
+0

太棒了!那是我想知道的。谢谢! – 2013-04-26 15:31:15

+0

完全没问题。请记住,虽然我在ruby中做了这个例子,但是对于其他linux内置命令(例如'cat'或'sh')来说,这也同样重要。 – 2013-04-26 15:55:20

2

是的,有一个非常简单的方法只使用基本的工具,从这个追成根:

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权限和catchmod的内容不会更改权限。

+0

啊,是的,这是一个最简单的解决方案,我看起来像下一个评论,关于chmod命令下隐藏的调用。谢谢你的答案 )。 – 2013-04-26 15:30:35