zoukankan      html  css  js  c++  java
  • chmod -x chmod的N种解法

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

    问题:

    如果某天你的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

    各位,你的方法呢?

    (全文完)

  • 相关阅读:
    异常测试之Socket网络异常
    关于文件的INode与Java中的文件操作接口
    java程序中获取kerberos登陆hadoop
    团队游戏的那些事
    细说内测
    如何搭建视频转码集群、播放服务器
    PropertyPlaceHolderConfigurer中的location是不是用错了?
    浅谈java classloader
    foreach写失效的问题
    ArcGIS中的WKID
  • 原文地址:https://www.cnblogs.com/wiessharling/p/4123101.html
Copyright © 2011-2022 走看看