
Eu uso rsync
para espelhar várias pastas em nosso servidor de failover. No entanto, alguns de nossos arquivos, como miniaturas ou índices de texto completo, são gerados por nossos aplicativos sob o usuário da web (denominado 'nobody') e têm permissões restritivas por padrão.
Além disso, estou fazendo isso por ssh, onde o acesso root está desabilitado, e gostaria de mantê-lo assim, se possível.
Existe alguma maneira razoável de dizer ao rsync para rodar como sudo? Ou devo tentar alterar as permissões do arquivo?
Responder1
você poderia:
- crie um novo grupo para dados que devem ser lidos (por rsync), adicione UIDs a esse grupo e/ou altere GIDs em arquivos e diretórios e defina as permissões apropriadas, que permitirão usar o rsync com esse nome de usuário
- obtenha a linha de comando exata executada no final do servidor ao usar rsync-over-ssh (dica, use -v várias vezes e lembre-se de retirar o '-v' da linha de comando obtida) e use a autenticação de chave pública SSH forçando isso específico comando (veja FORMATO DE ARQUIVO AUTHORIZED_KEYS em sshd(8))
Com o nº 2, você pode usar rsync sobre ssh para o usuário root e ainda estar seguro (consulte PermitRootLogin no-password em sshd_config(5)), ou melhor ainda, você pode combinar os dois para criar um usuário não privilegiado que só pode ser usado com essa linha de comando rsync específica.
EDIT: enviar dados de autenticação por ssh para obter root (por exemplo, ssh como usuário, sudo com senha de usuário) não é melhor do que fazer ssh diretamente para o usuário root (por meio de chave pública ou por meio de umbomsenha), IMHO.
Responder2
Você pode especificar o que executar como comando rsync remoto --rsync-path
- por exemplo, algo assim:
rsync --rsync-path='sudo rsync' --blah --blah /src blah@dest:/dst
Responder3
Você também pode usardaemon rsync. Porém, tenha cuidado, a maneira como descrevi lá torna possível acessar o nome do módulo por qualquer pessoa na máquina que executa o daemon rsync.
Não investiguei isso muito profundamente, mas não consegui criar uma configuração segura baseada em chave pública (e, portanto, sem senha) dessa maneira. Mas pode haver.