Linux 根据UID复制用户的脚本

Linux 根据UID复制用户的脚本,linux,bash,passwd,Linux,Bash,Passwd,我正在寻找一种将所有非系统用户从一台电脑复制到另一台电脑的方法。我可以使用此命令复制组和passwd文件 awk -F":" ' $3 > 499 ' etc/passwd >> /etc/passwd awk -F":" ' $3 > 499 ' etc/group >> /etc/group 但是,既然卷影文件不存储UID,我该如何复制它呢?假设有1000多个用户,那么使用用户名进行grep,例如,egrep'(bob | bill | sarah |

我正在寻找一种将所有非系统用户从一台电脑复制到另一台电脑的方法。我可以使用此命令复制组和passwd文件

awk -F":" ' $3 > 499 ' etc/passwd >> /etc/passwd
awk -F":" ' $3 > 499 ' etc/group >> /etc/group
但是,既然卷影文件不存储UID,我该如何复制它呢?假设有1000多个用户,那么使用用户名进行grep,例如,
egrep'(bob | bill | sarah | sal):'etc/shadow>/etc/shadow
从上面的awk代码生成用户名,虽然效率有点低,但这是一种可能的选择。

awk-F:“$3>499{print”^“$1”:“/etc/passwd | sudo grep-f-/etc/shadow>shadow.out

awk -F":" ' $3 > 499 {print $1} ' /etc/passwd | sudo grep -f - /etc/shadow > shadow.out

如果用户名是其他用户名的一部分,前面的答案可能会为每个用户生成多行。我从未使用过grep的-f标志。我猜它基本上意味着“匹配这些行中的任何一行”@bradlis7:
grep-f patternfile textfile
意味着在“patternfile”中查找要搜索“textfile”的模式列表。使用
-
作为文件名意味着使用标准输入。