2017年7月3日 星期一

大量搬移帳號

在Linux上面想要將A機器上面的帳號搬移到B機器上面,又不想要改密碼,可以藉由修改 /etc/passwd/etc/shadow 兩個檔案來完成。

首先,用下面的指令根據UID來排序A機器上面的帳號
  • sort -n -t ':' -k3 /etc/passwd
假設要移動的使用者帳號的UID從1111到2222,首先用下面的指令來看B機器上面有沒有UID從1111到2222的使用者
  • sort -n -t ':' -k3 /etc/passwd | awk -F ":" '$3>=1111 {print}' | awk -F ":" '$3<=2222 {print}'
確定B機器沒有上述帳號以後,才能安心地把帳號從A機器搬到B機器。這時候要在A機器上面把這些帳號印出來:
  1. sort -n -t ':' -k3 /etc/passwd | awk -F ":" '$3>=1111 {print}' | awk -F ":" '$3<=2222 {print $1}'
  2. sort -n -t ':' -k3 /etc/passwd | awk -F ":" '$3>=1111 {print}' | awk -F ":" '$3<=2222 {print $1}' | tr '\n' '|' | sed s'/.|$/\n/'
上面第1個指令是僅僅印出來帳號名稱、一行一個帳號,第二個指令則是變成egrep可以讀的pattern,這樣才能夠用下面的egrep指令將A機器裡面的 /etc/shadow 裡面的資料給抓出來:
  • sudo egrep -E `sort -n -t ':' -k3 /etc/passwd | awk -F ":" '$3>=1111 {print}' | awk -F ":" '$3<=2222 {print $1}' | tr '\n' '|' | sed s'/.|$/\n/'` /etc/shadow
最後把上述指令印出來的帳號相關資訊附加到到B機器的/etc/shadow檔案後面,這樣就完成從A機器大量搬移帳號到B機器,而且還不需要改密碼~

參考資料

_EOF_

沒有留言:

張貼留言