我想创建一个更改用户名的脚本。我想检查用户是否不是系统用户。我的想法是检查 /etc/passwd 并仅选择 ID 介于 1000 和 60000 之间的用户以及具有 /home 目录的用户,例如
user:x:1005:1021::/home/user:/bin/sh
Run Code Online (Sandbox Code Playgroud)
我现在的 grep 命令就像
egrep -E '1[0-9]{3}.*/home' /etc/passwd
Run Code Online (Sandbox Code Playgroud)
如您所见,它与我的 [1000-60000] 模式和名称都不匹配
您可以使用id >= 1000awk来查找本地用户:
awk -F: '$3>=1000 && $3!=65534 {print $1}' /etc/passwd
Run Code Online (Sandbox Code Playgroud)
还要检查下面的主文件夹/home:
awk -F: '$3>=1000 && $3 != 65534 && $6 ~ /^\/home/ {print $1}' /etc/passwd
Run Code Online (Sandbox Code Playgroud)
替换/etc/passwd与<(getent passwd)到列表,包括网络帐户的所有用户...