Como executar um arquivo sem permissões de execução [duplicado]

2

Digamos que user queira executar um script test.sh , mas ls -l test.sh

 -rwxrwxr-- 1 root root 96 Feb 25 21:44 test.sh

Agora, se user não quiser fazer uma cópia de test.sh (na qual ele faz chmod +x ), ele pode simplesmente fazer

sh test.sh

para executar test.sh .

Existe uma maneira analógica de executar programas binários que não possuem permissões de execução?

    
por wolf-revo-cats 25.02.2016 / 21:52

2 respostas

5

Basicamente, isso é o mesmo que uma das mais famosas perguntas técnicas da entrevista do UNIX, conhecida há séculos:

Suponha que alguém com acesso root tenha executado um comando chmod -R 444 / e tenha tornado o binário chmod não executável. Como você se recupera?

Existe uma resposta perl e existe essa, que basicamente está executando um programa não executável, chmod neste caso:

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

Acho que você pode aplicá-lo a qualquer outro programa que saiba ser executável. Caso contrário, esteja pronto para abraçar o desastre, o que pode resultar

PS > /lib/ld-linux.so pode diferir no nome. Portanto, se a correspondência direta não estiver disponível, procure pelo mesmo nome so 's. Por exemplo, no meu servidor CentOS 6, é /lib/ld-linux.so.2 , que é um link simbólico apontando para /lib/ld-2.12.so . Então, sua milhagem pode variar.

    
por 25.02.2016 / 22:11
-1

Se o usuário não tiver permissão de execução e não puder ou não desejar alterá-lo, deverá executá-lo como um grupo ou usuário com permissão de execução.

Se eles souberem a senha do root, então:

su -c <executable>

Se eles não souberem a senha do root, mas forem confiáveis com sudo , então:

sudo <executable>

Se eles não souberem a senha do root e não forem confiáveis com sudo privileges, haverá um motivo pelo qual eles devem executar o executável.

    
por 26.02.2016 / 16:03