相同的用户和帐户在不同的机器上使用rsync?

我有两台机器,相同的硬件(一个用于备份),相同的软件(红帽子4)。 我需要知道如何同步用于ftp和电子邮件帐户的所有用户。 将/etc/passw/etc/shadow复制到另一台机器上就足够了,以使其正常工作? 也许与cron和使用rsync

如果两个安装完全相同,您可以使用rsync,如下所示:no uid不同,并且您不打算为备份服务器创build唯一用户(注意,这意味着不安装需要自己的uid的软件)。 这不是大多数时候推荐的解决scheme(这将是NIS或LDAP),但它应该工作。

一个更灵活的解决scheme是使用脚本,只在需要时(用户是新的或已被修改)复制每个用户的信息(passwd,groups,shadow)。 你可以用shell脚本来完成这个工作,或者使用类似Perl或python的东西。 如果您对此解决scheme感兴趣并需要帮助,请告知我们。 这样,您也可以轻松地避免在系统之间共享系统帐户(包括root),这可能不合适。

你确定你的ftp和邮件守护进程都使用系统用户吗? 有时他们使用自己的用户数据库。

编辑:

在主服务器上(这个片段来自服务器之间用户密码列表的简单单向同步的答案):

 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 

然后将* .prod文件传输到备份服务器(我猜你已经有了公共密钥authentication),并执行此操作:

 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 

这应该使备份服务器上的系统帐户保持不变,但在每次运行时都要replace常规用户信息。 您可以更高效地执行此操作(search已更改的用户帐户,然后仅更改sed中的那些行),但这样可以更轻松地使用使用locking的cppw和cpgr。 注意:如果你使用这个,请先注释掉cppw和cpgr行,这样你可以检查* .new文件。

是的,如果机器真的是可比较的,只需复制这些文件就足够了。 但是,在备份计算机上安装并运行的软件和服务很可能只是其他计算机上的一小部分。 只需将用户复制到发行版用来区分系统/软件用户和普通用户的任何uid#阈值以上即可。