arquivo scp não definir proprietário correto
-
19-08-2019 - |
Pergunta
O SCP tem uma configuração problema permissões de arquivo ou ter I má configuração meu servidor?
Atualização (19 / Mar / 09) : Na verdade: Não há nenhum problema - Acabo mal o permissões forma como o trabalho - eles não mudam quando o conteúdo do arquivo são alteradas
Caso de uso:
Há um arquivo em um servidor que eu quero editar chamada "importantFile.txt". O arquivo tem dono e grupo de "mestre":
ls -l importantFile.txt:
-rw-rw-r-- 1 master master 7 Mar 18 08:11 importantFile.txt
Eu sou chamado "escravo", mas felizmente, eu estou no grupo "master" para que eu possa editar o arquivo como eu achar melhor. No entanto, eu sou um escravo preguiçoso e não pode ser incomodado para editar o arquivo no servidor, eu prefiro editar o arquivo na minha máquina local e SCP para o servidor:
echo "bored slave info" > importantFile.txt
scp importantFile.txt slave@theServerAddress:/pathToFile/importantFile.txt
Se eu fizer isso, o conteúdo do arquivo no servidor são enviados bem e o timestamp do arquivo é atualizado, mas as permissões do arquivo não mudam, o arquivo ainda é propriedade de "mestre". Este é um problema porque se "escravo" carregado de conteúdo ruim, ninguém saberia que era "escravo" que causou o problema, "mestre" seria culpado.
Talvez eu tenho que definir a umask? em caso afirmativo, onde? Tentei Bash_profile sem sucesso e não encontrei nada no Google sobre umask em /etc/ssh/sshd_config
.
Solução
Isso não é nada de especial sobre scp - logging tentativa para o servidor como escravo, e editar o arquivo usando seu editor de texto favorito ... Você vai encontrar o mesmo comportamento ocorre ... Escrevendo para um arquivo não faz de você o proprietário do arquivo.
Exemplo:
como root
#cd /tmp
#mkdir fubar
#chgrp vboxusers fubar
#cd fubar/
#touch testfile
#chgrp vboxusers testfile
#chmod g+w . testfile
#ls -al
total 16
drwxrwxr-x 2 root vboxusers 4096 2009-03-19 10:30 .
drwxrwxrwt 15 root root 12288 2009-03-19 10:29 ..
-rw-rw-r-- 1 root vboxusers 0 2009-03-19 10:30 testfile
#echo foo > testfile
#ls -al
total 20
drwxrwxr-x 2 root vboxusers 4096 2009-03-19 10:30 .
drwxrwxrwt 15 root root 12288 2009-03-19 10:29 ..
-rw-rw-r-- 1 root vboxusers 4 2009-03-19 10:30 testfile
como utilizador (no grupo vboxusers)
>cd /tmp/fubar
>ls -al
total 20
drwxrwxr-x 2 root vboxusers 4096 2009-03-19 10:30 .
drwxrwxrwt 15 root root 12288 2009-03-19 10:29 ..
-rw-rw-r-- 1 root vboxusers 4 2009-03-19 10:30 testfile
>echo bar >> testfile
>ls -al
total 20
drwxrwxr-x 2 root vboxusers 4096 2009-03-19 10:30 .
drwxrwxrwt 15 root root 12288 2009-03-19 10:29 ..
-rw-rw-r-- 1 root vboxusers 8 2009-03-19 10:31 testfile
>vim testfile
>ls -al
total 20
drwxrwxr-x 2 root vboxusers 4096 2009-03-19 10:31 .
drwxrwxrwt 15 root root 12288 2009-03-19 10:31 ..
-rw-rw-r-- 1 root vboxusers 12 2009-03-19 10:31 testfile
>cat testfile
foo
bar
baz
Outras dicas
Você tem que apagar o arquivo para substituí-lo. O tempo que você é capaz de fazer isso depende de permissões e propriedade do diretório. Sequestrando propriedade de um arquivo já existente não é possível. A permissão de escrita que você tem só é aplicado sobre o conteúdo do arquivo.
Parece que você pode configurar como Emacs lida com isso através da variável backup-by-copying-when-mismatch
(veja o Emacs C-h-v backup-by-copying-when-mismatch
manual ou tipo em Emacs).
Na verdade, eu entrou com uma relatório de bug sobre isso, porque eu pensei era um bug no Tramp.
Eu tinha entendido mal a arquivos de forma de trabalho, modificando o conteúdo do arquivo não alterar a propriedade ou grupo.
Por que a confusão? EMACS - Sempre que eu estava editando um arquivo que eu estava usando Emacs e Emacs faz mudar o proprietário e grupo para o usuário atual. Ele faz isso porque ele faz um arquivo de backup em economizar tempo, movendo o "nome do arquivo" para "filename ~" e criar um novo arquivo chamado "filename" - porque é um novo arquivo, que tem as permissões de arquivo usuários atuais. Eu acho que isso é 1up a VI fãs?