Estou carregando arquivos para minha conta shell usando scp. Como preciso de permissões diferentes no servidor e no meu computador, gostaria de ter uma maneira de alterar facilmente as permissões após o upload sem precisar ssh na conta e alterá-las manualmente.
upload
permissions
scp
Florian Mayer
fonte
fonte
Minha solução de trabalho preferida seria usar
rsync
:Substituir:
Com:
Isso impede que você se autentique duas vezes. Também existem muitas outras opções com o rsync que provavelmente agregariam valor, como preservar o proprietário, o grupo etc.
fonte
--perms
também. explainshell.com/...Eu fiz alguns experimentos com o scp. Para novos arquivos carregados no servidor de destino, os arquivos têm as mesmas permissões que no servidor de origem. Se os arquivos existentes forem substituídos no servidor de destino, as permissões desses arquivos não serão alteradas.
Eu fiz esses experimentos com o CentOS 4.6.
fonte
Você poderia fazer isso usando tar, ssh e umask assim:
no host 1:
no host2:
Você pode soltar as opções -v no tar que eu incluí aqui apenas para que você possa ver os arquivos sendo colocados no host1 e enviados através do STDOUT (aka. -) e, em seguida, ficando sem tar no host2.
NOTA: Por que isso funciona? O comportamento padrão do Tar é descompactar arquivos usando umask de um usuário remoto. No exemplo acima, incluí o comando umask para defini-lo explicitamente para algo diferente, o que demonstra que o tar remoto está alterando as permissões no lado remoto.
fonte
umask
apenas as permissões de sub-resumo, por exemplo, para um arquivo local com o700
qual não foi possível obtê-lo755
no servidor de destino, ou estou errado?--no-same-permissions
para o segundotar
uso, se o usuário de destino é raiz, consulte superuser.com/a/383801/89031umask
arquivo para todo o conjunto de arquivos conforme eles são gravados no servidor remoto. Não há controle individual para arquivos diferentes. Usarei isso com frequência, pois desejo remover permissões relaxadas que estavam bem no meu laptop, ao copiar para uma implantação remota, por exemplo.--no-same-permissions
está correto, de acordo comtar
a página de manual do usuário . Eu mudei os prompts no meu exemplo para não haver confusão nisso.Eu escrevi um pequeno script para a tarefa em Python. Você pode fazer python script.py -p o + r alguns arquivos, alguns / dir / on / the / server /
fonte
Sugiro que você configure um lembrete na pasta para que os arquivos carregados nessa pasta obtenham essa permissão automaticamente.
"1" usado acima define o bit adesivo.
portanto, você só precisa enviar um e não executar outro comando posteriormente.
fonte
Supondo que você esteja fazendo o upload para uma variante do UNIX, acho que as permissões devem seguir as configurações do UMASK. Não me lembro de nada que arquivos de ponto são processados para o SCP, mas se você definir o seu UMASK em um desses arquivos, os arquivos criados terão suas permissões definidas com base nele. Provavelmente depende de qual shell você usa no sistema remoto.
Faça o que fizer, não use a opção -p, pois faz exatamente o oposto do que você deseja.
fonte