No Linux:
/lib/ld-linux.so.2 /bin/chmod +x /bin/chmod
Então eu fiz um chmod -x chmod
. Como posso resolver esse problema? Como faço para executar os direitos de execução no chmod?
Use python:
# python
Python> import os
Python> os.chmod("/bin/chmod",0755)
Isso depende do fato de que as permissões de um arquivo de destino são preservadas, em vez do arquivo de origem, quando ele está sendo copiado. Estamos "pegando emprestado" as permissões de ls
:
cp /bin/ls /tmp/chmod.tmp
cp /bin/chmod /tmp/chmod.tmp
mv /tmp/chmod.tmp /bin/chmod
Usando o Perl:
% perl -e 'chmod 0755, qw[/bin/chmod]'
setfacl -m u::rx /bin/chmod
... concederá ao proprietário permissões de execução.
Mas o truque /lib/ld-linux.so.2
é legal. :)
Isso é estranho ... Eu vi algo parecido com isso há alguns dias através do tweet de alguém ...
Você deve estar em um sistema no qual /bin/chmod
não possa ser carregado pelo vinculador dinâmico:
# /bin/mv /bin/chmod /bin/chmod.tmp
# install -p -m 755 /bin/chmod.tmp /bin/chmod
Isso funciona no meu sistema MacOS X.
/ rescue / chmod 555 / bin / chmod
Eu acho que você também pode usar o mtree.
crie um novo chmod e use-o para o original
umask 000
cat chmod > ~/my-chmod
~/my-chmod a+x chmod
Suspeito que esta não é uma questão real: link