
Quero usar o unison para sincronizar os diretórios/home entre duas caixas EL6.
A maioria dos artigos assume que o unison é executado como root e pode fazer ssh entre as duas caixas como root. No entanto, desabilitamos logins root em /etc/passwd, bem como em /etc/login.block. A conexão via ssh como root está desabilitada em sshd_config.
Existe um método comum e/ou estabelecido para sincronizar algo como /home sem exigir login root?
Um pensamento que tive é
- configure um uid:gid unison:unison em ambas as caixas
- configure um par de chaves ssh para uníssono uid.
- configure unison/.ssh/authorized_keys para que apenas unison possa ser executado remotamente
- configure uma acl em /home setfacl -R -md:g:unison:rwx,g:unison:rwx /home
- configure o cronjob para que ele seja executado como uid 'unison'.
mas espero que haja uma maneira melhor e mais aceita
Obrigado!
Responder1
O queEu costumo fazeré criar contas de função.
- Crie uma conta de função (na verdade, apenas outro usuário, mas temos um espaço uid reservado para isso) - provavelmente o que você usou com
unison
- use
~unison/.ssh/authorized/keys
com um padrão de restrição como `force-command="/usr/local/bin/unison-homesync.sh" - escrever
/usr/local/bin/unison-homesync.sh
- use sudo para as ações privilegiadas necessárias
Prós:
- Não há necessidade de root para poder fazer login
- sudo facilita o uso de ações privilegiadas
- escrever um script wrapper facilita estar em um ambiente controlado
Contras:
A abordagem não é bem dimensionada quando feita manualmente. Se algum gerenciamento de configuração estiver em vigor, não será um problema.