mesmos usuários e contas em máquinas diferentes usando rsync?

1

Eu tenho duas máquinas, o mesmo hardware (uma deve ser para backup), o mesmo software (red hat 4). Eu preciso saber como sincronizar todos os usuários usados para contas de FTP e de e-mail. É suficiente copiar o /etc/passw e /etc/shadow para a outra máquina para que isso funcione? Talvez com o cron e usando rsync ?

    
por Kreker 20.04.2011 / 15:03

2 respostas

4

Você pode usar o rsync se as duas instalações forem realmente idênticas, como em: nenhum uids é diferente e você não planeja nunca criar usuários exclusivos para o servidor de backup (note que isso implica não instalar software que precisa de seu próprio uid). Não é a solução recomendada na maioria das vezes (isso seria NIS ou LDAP), mas deve funcionar.

Uma solução um pouco mais flexível seria usar um script que copie as informações por usuário (passwd, grupos, sombra) somente quando necessário (o usuário é novo ou foi modificado). Você pode fazer isso com um script de shell com a ajuda de diff ou usando algo como perl ou python. Deixe-me saber se você está interessado nesta solução e precisar de ajuda. Dessa forma, você também pode facilmente evitar a necessidade de compartilhar contas do sistema (incluindo o root) entre sistemas, o que pode não ser apropriado.

Tem certeza de que seus daemons de ftp e mail usam exclusivamente os usuários do sistema? Às vezes, eles usam seus próprios bancos de dados de usuários.

EDITAR:

No servidor principal (esse fragmento vem de uma resposta a Sincronização unidirecional simples da lista de senhas de usuários entre servidores ):

awk -F: '($3>=500) && ($3!=65534)' /etc/passwd > passwd.prod
awk -F: '($3>=500) && ($3!=65534)' /etc/group > group.prod
awk -F: '($3>=500) && ($3!=65534) {print $1}' /etc/passwd | grep -f - /etc/shadow > shadow.prod

Em seguida, transfira os arquivos * .prod para o servidor de backup (suponho que você já tenha uma autenticação de chave pública) e faça o seguinte:

awk -F: '($3<500)' /etc/passwd > passwd.new &&
cat passwd.prod >> passwd.new &&
cppw passwd.new
awk -F: '($3<500)' /etc/group > group.new &&
cat group.prod >> group.new &&
cpgr passwd.new
awk -F: '($3<500) {print $1}' /etc/passwd | grep -f - /etc/shadow > shadow.new &&
cat shadow.prod >> shadow.new &&
cppw -s shadow.new

Isso deve manter as contas do sistema inalteradas no servidor de backup, mas substituir as informações regulares do usuário em cada execução. Você poderia fazer isso de forma mais eficiente (procurando por contas de usuário alteradas e, em seguida, alterando apenas as linhas com sed), mas dessa forma é mais fácil usar cppw e cpgr, que usam o bloqueio. NOTA: se você usar isso, por favor comente as linhas cppw e cpgr primeiro, assim você pode verificar os arquivos * .new.

    
por 20.04.2011 / 15:30
1

Sim, se as máquinas forem realmente comparáveis, basta copiar esses arquivos. No entanto, o software e os serviços que você instalou e executou na máquina de backup provavelmente são um pequeno subconjunto daqueles em uma máquina diferente. Pode ser aconselhável copiar apenas os usuários acima de qualquer limite que a sua distribuição use para distinguir usuários de sistema / software de usuários comuns.

    
por 20.04.2011 / 15:33