秋梦无痕

一场秋雨无梦痕,春夜清风冻煞人。冬来冷水寒似铁,夏至京北蟑满城。

Avatar

chmod -x chmod的N种解法

from: collshell.cn

来源:http://www.slideshare.net/cog/chmod-x-chmod

某天你的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)” JavaScript: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 “0755″ 8))
Ctrl+j


8)使用install

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

我会直接用SFTP传一个带755的chmod上去,哈。。。。

really cool!

原ppt里面是不让连接网络的。
当然,局域网通过sftp传一个chmod也是可以的。