Por que posso executar sem permissões de leitura?

1

Por que posso executar programas sem lê-los?

$ echo 'echo "foo"' > test && chmod 100 test && ./test
foo
    
por Brettetete 26.10.2015 / 22:04

2 respostas

3

Acho que seu comando e caso de teste declarado funcionarão apenas com root (superusuário), com base em meus testes com o mesmo comando exato na minha caixa do Ubuntu Trusty.

Esta é uma conta sem privilégios:

[teward /home/teward/tmp/]% echo 'echo "foo"' > test && chmod 100 test && ./test
zsh: permission denied: ./test

Isso é como root:

[god /home/teward/tmp/]# echo 'echo "foo"' > test && chmod 100 test && ./test
foo

(Em relação a god no meu prompt de raiz: Eu tenho root e meu usuário usando zsh como o shell de login. Meu PS1 para ZSH substitui 'root' por 'god' para o usuário root no meu sistema, mas ainda é 'root'. O nível de privilégio é indicado pelo caractere à direita da chave do quadrado de fechamento - o # indica a raiz, e % indica usuário padrão, que é como você sabe o nível de privilégio

Eu acho que isso é porque 'root' é considerado deus, e pode fazer quase qualquer coisa. Verifique novamente o usuário que você está usando.

    
por Thomas Ward 26.10.2015 / 22:24
1

Porque o seu shell tem que ler o arquivo para saber o que executar. Se você remover o acesso de leitura, ele não poderá lê-lo, portanto, não saberá o que você deseja executar.

    
por Scott McGee 26.10.2015 / 22:12