Existe algum dano na conversão de todos os arquivos para executáveis?

1

Eu queria instalar determinado software. O pacote tinha muitos arquivos, incluindo alguns arquivos de script de shell. Inicialmente eu tive que selecionar alguns arquivos e torná-lo executável:

chmod 777 shellscr1

mas depois percebi que existem muitos desses arquivos que terei que tornar executáveis. Então, como um atalho, fiz isso:

chmod 777 *

e agora todos os arquivos são executáveis.

Há alguma consequência séria disso (além da segurança)?

    
por gpuguy 18.01.2014 / 06:06

4 respostas

4

Dependendo do programa, ele pode não ter efeitos negativos ou pode tornar o software inutilizável.

Por exemplo, altere as permissões do seu diretório ~ / .ssh e veja qual erro você recebe ao tentar e ssh em outra máquina.

Alguns programas acessam arquivos de configuração como um usuário específico. com 777 permissões, qualquer um poderia sobrescrever o arquivo tornando-os o proprietário do arquivo.

    
por 18.01.2014 / 08:39
3

Como apontado por outros, não há razão (pelo menos não apresentada na pergunta) por que os arquivos precisariam ser graváveis em todo o mundo. Algo como chmod 755 * ou chmod +x * deve ser suficiente.

No entanto, vou reduzir ainda mais a resposta e dar-lhe uma resposta que exija exatamente o que você está pedindo. Espera-se sempre que um script de shell comece com shebang , como

#!/usr/bin/env bash

Então, aqui está um trecho que irá procurar por quaisquer arquivos no diretório atual, começando com os caracteres #!/ e os tornando executáveis. Em outras palavras, esse comando marcará apenas os arquivos que se parecem com scripts de shell como executáveis.

for file in *; do [ "$(head -c 3 "$file")" = '#!/' ] && chmod +x "$file"; done;
    
por 18.01.2014 / 09:49
2

Além da segurança, não há consequências sérias. (falando logicamente, claro)

    
por 18.01.2014 / 06:12
0

Initially I had to select some files and then make it executable:

 chmod 777 shellscr1

Torná-los executáveis não significa 777 , isso significa 755 . Você pode pelo menos mudar isso, por razões óbvias ligadas à segurança.

Tornar scripts de shell executáveis pode ocasionalmente ter alguns efeitos adversos. Por exemplo, se o seu / bin / sh aponta para um shell diferente daquele para o qual o script é destinado, você pode torná-lo essencialmente inutilizável. Um bom programador teria tomado medidas para evitar isso e, alterando as permissões, você pode ter anulado seus esforços.

Mas, repito, isso se aplica somente se o seu / bin / sh apontar para um shell não padrão.

    
por 18.01.2014 / 09:06