如果chmod
拥有用户:组权限为root:root
,并且拥有220
的权限,root用户是否可以恢复执行权限?chmod归根,权限为220
一般来说,如何从Unix体系结构的角度解决这些鸡蛋问题?
我一直认为,root用户可以做所有事情,甚至可以用000
权限执行文件。
如果chmod
拥有用户:组权限为root:root
,并且拥有220
的权限,root用户是否可以恢复执行权限?chmod归根,权限为220
一般来说,如何从Unix体系结构的角度解决这些鸡蛋问题?
我一直认为,root用户可以做所有事情,甚至可以用000
权限执行文件。
一般来说,如何从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
是的,有一个非常简单的方法只使用基本的工具,从这个追成根:
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
的内容不会更改权限。
啊,是的,这是一个最简单的解决方案,我看起来像下一个评论,关于chmod命令下隐藏的调用。谢谢你的答案 )。 – 2013-04-26 15:30:35
太棒了!那是我想知道的。谢谢! – 2013-04-26 15:31:15
完全没问题。请记住,虽然我在ruby中做了这个例子,但是对于其他linux内置命令(例如'cat'或'sh')来说,这也同样重要。 – 2013-04-26 15:55:20