我刚刚做了一个 chmod -x chmod

Roo*_*ook 27 security linux freebsd unix

所以我做了一个chmod -x chmod. 我该如何解决这个问题?如何将执行权限返回给 chmod?

bin*_*dbn 43

在 Linux 中:

/lib/ld-linux.so.2 /bin/chmod +x /bin/chmod
Run Code Online (Sandbox Code Playgroud)

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

  • 在 64 位发行版上,您可能必须改用`/lib64/ld-linux-x86-64.so.2`。`ldd /bin/chmod` 应该准确地列出要运行的链接器。 (2认同)

Dou*_*der 18

使用蟒蛇:

# python
Python> import os
Python> os.chmod("/bin/chmod",0755)
Run Code Online (Sandbox Code Playgroud)

  • 并且,作为单行:`python -c "import os; os.chmod('/bin/chmod', 0755)"` (4认同)

Den*_*son 18

这依赖于这样一个事实,即在复制目标文件时保留目标文件而不是源文件的权限。我们正在“借用”以下权限ls

cp /bin/ls /tmp/chmod.tmp
cp /bin/chmod /tmp/chmod.tmp
mv /tmp/chmod.tmp /bin/chmod
Run Code Online (Sandbox Code Playgroud)


Aln*_*tak 10

使用 Perl:

% perl -e 'chmod 0755, qw[/bin/chmod]'
Run Code Online (Sandbox Code Playgroud)


Kyl*_*ley 7

setfacl -m u::rx /bin/chmod

...将授予所有者执行权限。

但是,/lib/ld-linux.so.2诀窍很巧妙。:)


Tha*_*Guy 5

这很奇怪......我几天前通过某人的推文看到了这样的事情......

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


Aln*_*tak 5

如果您所在的系统/bin/chmod无法被动态链接器加载:

# /bin/mv /bin/chmod /bin/chmod.tmp
# install -p -m 755 /bin/chmod.tmp /bin/chmod
Run Code Online (Sandbox Code Playgroud)

这适用于我的 MacOS X 系统。