RSync por SSH - permissão negada mesmo que o usuário esteja no grupo raiz

4

Eu tenho a necessidade de copiar arquivos entre servidores através da web. Estou usando o RSYNC sobre o ssh para fazer isso. O problema é que eu preciso ser capaz de transferir arquivos, não importa onde estejam os arquivos.

Eu criei um usuário rsync e: usermod -G root -a rsync para dar a ele o direito de ler / escrever em qualquer lugar nos dois servidores.

Durante a transferência, vejo este erro:

rsync: mkstemp "/root/.myFile.RDr2HY" failed: Permission denied (13)

Eu não entendo o que está acontecendo.

edit: Acabei de descobrir que a pasta de destino não tinha acesso de gravação para o grupo raiz. Como eu daria 100% de acesso a esse usuário de rsync? Se eu mudar seu uid para 0, o rsync irá parar de funcionar.

    
por Bastien974 23.06.2011 / 20:16

2 respostas

3

O que você fez, usermod -G root -a rsync , é adicionar o usuário rsync ao grupo raiz. Isso não tem efeito algum na maioria dos sistemas, porque o grupo raiz não é especial. Existem sistemas em que estar no grupo raiz é necessário para escalar privilégios para o usuário root, mas nunca é suficiente (o grupo raiz é o grupo de usuários que podem usar sudo ou algum equivalente configuração).

Em termos de segurança, dar a um usuário a permissão para gravar arquivos em qualquer lugar é exatamente o mesmo que dar a esse usuário root powers. (O usuário pode sobrescrever /bin/su , ou /etc/passwd ou /usr/sbin/sshd , ou qualquer outro número de programas e bancos de dados que permitam que ela configure um backdoor para si mesma.)

Se você precisar acessar arquivos arbitrários em ssh, permita logins ssh como root. Não com uma senha (ou uma longa, gerada aleatoriamente), apenas com uma chave (que você precisa proteger com cuidado, é claro). Em /etc/sshd_config , coloque

PermitRootLogin yes
    
por 23.06.2011 / 22:35
0

Outra maneira de permitir o acesso arbitrário a arquivos seria conceder ao seu usuário rsync as permissões apropriadas via POSIX ACLs em seu (s) sistema (s) de arquivos. Escrevi um breve resumo das ACLs herdadas aqui .

Se a sua exigência para permitir que o usuário grave em qualquer arquivo seja precisa, então pode haver maiores preocupações de segurança, e pode ser mais prudente fazer como outros sugerem e apenas permitir logins raiz - mantendo a configuração simples economize seu tempo no futuro.

No entanto, eu suspeito strongmente que você não precisa, de fato, da capacidade de colocar arquivos em qualquer lugar do sistema. Se for esse o caso, e você precisa apenas colocá-los em alguns lugares arbitrários, as ACLs POSIX podem ajudá-lo.

Se você realmente precisa ser capaz de sobrescrever, por exemplo, / etc / passwd através deste mecanismo, então você deve considerar uma abordagem diferente. Se você está promovendo alterações de configuração, incluindo contas, você terá um tempo melhor se usar um sistema de gerenciamento de configuração como fantoche ou cfengine . Eles permitirão que você especifique alterações de configuração, que serão então enviadas para o sistema remoto.

    
por 24.06.2011 / 00:39