NOTA: A pergunta no momento foi enviada para transferência de e-mail (por comentários do OP sobre a questão). Essa resposta foi escrita para responder a essa pergunta, pois o email é o método de transferência disponível aqui.
Ao usar o email para transferir arquivos entre os sistemas, você não pode "preservar" todas as permissões de arquivo como deseja, apenas enviando o arquivo. Isso ocorre porque é um 'novo download' que é um 'novo arquivo' criado de acordo com os termos e requisitos da política do sistema para 'novas permissões de criação de arquivo' no local de download, no sistema de download, etc. os protocolos não possuem nenhum mecanismo para preservar as permissões do sistema de origem.
O exemplo do GitHub que você mostra "salvará" os estados de permissão dos arquivos como parte do sistema de controle de versão. E-mail não tem esse mecanismo.
Como já definimos que o E-mail não permite preservar as permissões de arquivo, você precisa avaliar outros métodos.
-
Use um tarball . Você pode criar um diretório com o arquivo e criar um tarball para manter o sistema. Quando extraído em um sistema Linux, ele tentará e 'preservará' essas permissões como as coisas estavam quando você compactou os arquivos.
tar -pczf name_of_your_archive.tar.gz /path/to/directory
é a estrutura geral de comando a ser usada. No entanto, se eles não puderem executartar xzf
ou similar no outro lado, isso não funcionará. -
Use um sistema de controle de versão para armazenar os dados, como um repositório do GitHub. Você pode criar um repositório github para conter o shell script e fazer com que a outra pessoa o copie para seu sistema. Isso deve preservar o bit executável, mas sem garantias.
-
Instrua o outro usuário sobre como definir o bit executável através da linha de comando . Se eles fizerem o download do arquivo para
/home/USERNAME/Downloads
, ondeUSERNAME
é seu nome de usuário, você poderá instruí-los a fazer o login no terminal e executarchmod a+x /home/USERNAME/Downloads/FileName.sh
, e eles poderão executá-lo com um clique duplo ou pela linha de comando. / p> -
Se o email for a única opção de transferência , executará o script com a linguagem shell na qual você o escreveu (provavelmente Bash, é meu palpite) . Isso não precisará de nenhuma alteração nas permissões ou no bit de execução em qualquer lugar. Supondo que este seja um script Bash , basta fazer com que o usuário remoto que baixou o script execute o seguinte (na linha de comando):
bash /path/to/script.sh
(e substitua/path/to/script.sh
pelo caminho real do arquivo , provável/home/USERNAME/Downloads
ou um local de download de e-mail padrão ou se baixado via webmail em um navegador da web em que USERNAME é o nome de usuário do usuário)
Diferentemente dos três primeiros métodos, dos quais estou ciente, não acredito que você possa 'preservar' as permissões ao enviar o arquivo para o outro usuário. Essa é uma limitação do E-mail - ele não pode preservar as permissões dessa forma, porque não há como salvar as permissões como parte desse arquivo de forma preservada durante o transporte por e-mail. A quarta opção fornece um método para nem mesmo precisar do bit executável e não mexer nas permissões.