Linux

伺服器間使用者密碼列表的簡單單向同步

  • May 23, 2020

使用 RedHat 衍生髮行版 (CentOS),我想保留普通使用者列表(UID 超過 500),並將組(和影子文件)推送到備份伺服器。

同步是單向的,從主伺服器到備份伺服器。

我真的不想處理 LDAP 或 NIS。

我只需要一個簡單的腳本,它可以每晚執行以保持備份伺服器的更新。

主伺服器可以通過 SSH 連接到備份系統。

有什麼建議嗎?

編輯:

感謝到目前為止的建議,但我認為我還不夠清楚。

我只關注同步UID 大於或等於 500的普通使用者。

兩個系統上的系統/服務使用者(UID 低於 500)可能不同。

因此,恐怕您不能只同步整個文件。

您可以使用 awk 提取 ID 為 500 或更大的使用者/組。我還冒昧地排除了使用者 id 65534,它通常是為“nobody”使用者保留的(取決於發行版;不知道 CentOS 是否這樣做):

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

然後使用 rsync、scp 或您選擇的文件傳輸方法將文件複製到您的備份系統。然後,當您需要恢復這些文件時,可以將這些文件附加到“乾淨”密碼、組或影子文件的末尾(即:僅預設系統使用者/組,以防止無意中重複 ID/使用者名)。

cat passwd.new >> /etc/passwd
cat group.new >> /etc/group
cat shadow.new >> /etc/shadow

NIS/NIS+ 正是出於這個原因而發明的。

但是它們有點醜陋和集中(LDAP/Kerberos/SMB/等)身份驗證是一個更好的主意,如果你能做到的話。要設置 NIS/NIS+,您需要:

套餐:

yp-tools ypbind ypserv portmap

和 /etc/yp.conf 類似:

domain example.org server nis.example.org
ypserver nis.example.org

然後在 /etc/sysconfig/network 中:

NISDOMAIN=example.org

而且我很懶,這裡有一個很好的方法:http ://www.wains.be/index.php/2007/02/28/setting-up-nis-under-centos-4/它將引導您完成它。

就個人而言,我只是備份整個 /etc/ 目錄並完成它。最多只有幾兆。

引用自:https://serverfault.com/questions/18444