Há algum mal em converter todos os arquivos em executáveis?

Há algum mal em converter todos os arquivos em executáveis?

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

chmod 777 shellscr1

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

chmod 777 *

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

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

Responder1

Dependendo do programa, isso pode não ter efeitos negativos ou pode inutilizar o software.

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

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

Responder2

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

No entanto, vou restringir ainda mais a resposta e dar-lhe uma resposta que nãoexatamenteo que você está pedindo. Espera-se sempre que um script de shell comece com umShebangcomo

#!/usr/bin/env bash

Então aqui está um trecho que irá procurar quaisquer arquivos no diretório atual começando com os caracteres #!/e torná-los executáveis. Em outras palavras, este 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;

Responder3

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

Responder4

Inicialmente tive que selecionar alguns arquivos e depois torná-los executáveis:

 chmod 777 shellscr1

Torná-los executáveis ​​não significa777, Isso significa755. Você pode pelo menos mudar isso, por razões óbvias relacionadas à segurança.

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

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

informação relacionada