Que permissões devo definir para um executável que provavelmente compartilharei?

2

Estou escrevendo um script básico que faz uma pequena limpeza doméstica para mim (limpando os arquivos de log de qualquer projeto Rails no diretório atual). Estou tornando-o executável e não tenho certeza do que a melhor prática determina quanto à configuração das permissões de arquivo "grupo" e "outros". Devo apenas definir permissões para 700 (somente o proprietário pode rwx)?

Parte da minha confusão é como a "propriedade" é determinada quando um arquivo é copiado de um sistema para outro. Se meu UID for 509 e eu definir my_file.sh file-permissions como 700, acredito que a propriedade do arquivo seja determinada pelo armazenamento de um UID no arquivo. Se eu compartilhar my_file.sh e alguém fizer o download para o sistema deles, o UID será alterado para corresponder ao deles? Depende de como o arquivo é transferido (scp, git, http, etc.)?

    
por ivan 31.08.2014 / 20:05

1 resposta

3

I'm not sure what best practice dictates as far as setting the "group" and "others" file permissions.

Uma abordagem normal seria 755, portanto, grupo e outros têm permissão de leitura / execução. Praticamente tudo em (por exemplo) /usr/bin é definido dessa forma.

If I share my_file.sh and someone downloads it to their system, does the UID get changed to match their own? Does it depend on how the file is transferred (scp, git, http, etc.)?

Quase certamente é definido como UID, mas há métodos que podem manter o valor original - por exemplo, se você tar do arquivo e, em seguida, abri-lo em algum lugar como root, você obtém o UID numérico original.

Geralmente não há significância para isso, a menos que você tenha algum motivo específico para implantar o arquivo em algum lugar com um UID específico. Se sua preocupação for sobre a capacidade de ler e modificar o script, não há como evitar isso, independentemente de qual UID ou metodologia você usa. Alguém que transporta um arquivo para outro sistema no qual tenha acesso root pode fazer o que quiser com ele. No entanto, eles não podem substituir ou modificar o original, a menos que tenham permissão de gravação no original.

No sistema local, um arquivo com permissão de leitura / execução pode ser copiado (desde que seja legível) e a cópia terá o UID do usuário que fez a cópia. Você pode definir um arquivo executável, mas não legível, mas não há propósito em fazê-lo; um arquivo deve ser executável e legível para ser executado. Em outras palavras, se você quiser que todos tenham permissão para usar o script, você precisará de minimamente permissão de leitura e execução mundial.

    
por 31.08.2014 / 21:33