Acabei de fazer um chmod -x chmod

26

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?

    
por Rook 11.10.2010 / 09:31

10 respostas

42

No Linux:

/lib/ld-linux.so.2 /bin/chmod +x /bin/chmod

link

    
por 11.10.2010 / 09:38
17

Use python:

# python
Python> import os
Python> os.chmod("/bin/chmod",0755)
    
por 11.10.2010 / 14:44
17

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
    
por 11.10.2010 / 16:55
8

Usando o Perl:

% perl -e 'chmod 0755, qw[/bin/chmod]'
    
por 11.10.2010 / 23:54
6

setfacl -m u::rx /bin/chmod

... concederá ao proprietário permissões de execução.

Mas o truque /lib/ld-linux.so.2 é legal. :)

    
por 05.11.2010 / 18:46
5

Isso é estranho ... Eu vi algo parecido com isso há alguns dias através do tweet de alguém ...

link

    
por 11.10.2010 / 10:08
3

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.

    
por 11.10.2010 / 10:41
2

/ rescue / chmod 555 / bin / chmod

Eu acho que você também pode usar o mtree.

    
por 05.11.2010 / 17:15
1

crie um novo chmod e use-o para o original

umask 000
cat chmod > ~/my-chmod
~/my-chmod a+x chmod
    
por 11.10.2010 / 16:42
1

Suspeito que esta não é uma questão real: link

  • Reinstalar o chown: sudo apt-get install --reinstalar o coreutils
  • perl -e 'chmod 0755, "chmod"'
  • mais exemplos nos slides
por 18.11.2010 / 00:58