码迷,mamicode.com
首页 > 其他好文 > 详细

chmod -x chmod的N种解法

时间:2014-11-26 15:50:30      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   io   ar   color   os   使用   

声明:该文章摘自陈皓的酷壳。

问题:

如果某天你的Unix/Linux系统上的chomd命令被某人去掉了x属性(执行属性),那么,你如何恢复呢?


参考答案:

1)重新安装。对于Debian的系统:

sudo apt-get install --reinstall coreutils

2)使用语言级的chmod

  • Perl:perl-e ‘chmod 0755, “/bin/chmod”‘
  • Python:python -c “import os;os.chmod(‘/bin/chmod’, 0755)”
  • Node.js:require(“fs”).chmodSync(“/bin/chmod”, 0755);
  • C程序:
    #include <sys/types.h>
    #include<sys/stat.h>
    void main()
    {
    chmod("/bin/chmod", 0000755);
    }

3)使用已有的可执行文件。

$cat - > chmod.c
void main(){}
^D

$cc chmod.c
$cat /bin/chmod > a.out
$./a.out 0755 /bin/chmod
$cp true > new_chmod
$cat /bin/chmod > new_chmod
$./new_chmod 0755 /bin/chmod

4)使用GNU tar命令

$tar --mode 0755 -cf chmod.tar /bin/chmod
$tar xvf chmod.tar
tar --mode 755 -cvf - chmod | tar -xvf -

5)使用cpio (第19到24字节为file mode – http://4bxf.sl.pt

echo chmod |
cpio -o |
perl -pe s/^(.{21}).../${1}755/ |
cpio -i -u

6)使用hardcore

alias chmod=/lib/ld-2.11.1.so ./chmod

7)使用Emacs

Ctrl+x b > * scratch*
(set-file-modes “/bin/chmod” (string-to-number “07558))
Ctrl+j

嗯,挺强大的,不过为什么不用install命令呢?

install -m 755 /bin/chmod /tmp/chmod
mv /tmp/chmod /bin/chmod

各位,你的方法呢?

(全文完)

chmod -x chmod的N种解法

标签:des   style   blog   http   io   ar   color   os   使用   

原文地址:http://www.cnblogs.com/wiessharling/p/4123101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!