O que significa o sinalizador NOEXEC ao montar diretórios no RHEL?

6

Estou tentando entender a bandeira do NOEXEC ao montar.

Estou tendo um problema de execução dentro do diretório / tmp na máquina de alguém que não consigo acessar o atm onde o diretório / tmp está montado em uma unidade diferente de '/' e o NOEXEC está presente. Eu queria tentar recriar esse cenário na minha máquina, mas não tenho um segundo disco rígido. Eu tentei fazer o seguinte comando:

mount --bind /test1 /test2

Em seguida, removi o sinal bind e adicionei NOEXEC em / etc / fstab. Então, eu criei um arquivo em / test2 chamado test.sh, onde apenas echos 'hello world'. Eu tento executá-lo e ele disse 'permissão negada'. Eu então corri o chmod 777 test.sh e pude executar o arquivo muito bem. Eu pensei que o sinalizador NOEXEC não deveria permitir que eu executasse alguma coisa?

O mount --bind /test1 /test2 não é o mesmo que a montagem de uma unidade física completamente diferente? Como em / test1 e / test2 estão em drives diferentes?

    
por user972276 12.03.2014 / 18:08

1 resposta

3

A opção 'NOEXEC' flag no comando mount não permite a execução de binários executáveis no sistema de arquivos montado 1 . No entanto, quando um script (um arquivo de texto que começa com a linha she-bang, isto é, uma linha que começa com #! ) é dado a alguns shells (bash), ele executará o executável nomeado nessa linha (por exemplo, /usr/bin/perl ) e conecta o conteúdo do arquivo de script ao stdin desse executável, que pode não estar nessa unidade.

por 12.03.2014 / 18:10