Linux中避开执行权限的小技巧
刚才在修改执行文件权限时,突然想到了一个可以绕过root对普通用户限制执行权限的好方法。
如果文件file没有x权限而还有r权限的话,那么使用命令cat file > file2可以把file的二进制代码重定向到file2当中,此时ls -l file2,发现权限是-rw-rw-r--,但好处是所有者和所在组都变成当前用户了,那么此时只需chmod u+x file2,就可以顺利地执行file2了!
原理就是file中存储的是可执行的二进制代码,读file显示出来的内容虽然我们无法理解,但却正是机器能理解的语言,所以只要想方法把这段二进制机器码存放在另外一个有执行权限的文件里,也就相当于获得了有执行权限的file了,而重定向正好解决了转存的问题。
如果还嫌这麻烦的话,那么就直接cp file file2吧,立即获得执行权限。猜想cp和cat重定向的原理类似,都是先read然后write新建文件。
当然,这只是对于单个文件的小程序,对于大型多文件的程序来说就不行了,而且还要在有读权限的前提下。不过对于帮助理解二进制执行文件的原理还是很有帮助的。
posted on 2012-07-08 21:55 JacobChen2012 阅读(693) 评论(1) 编辑 收藏 举报