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.

Foi útil?

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?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top