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.