答案1
您可以从实用程序提供的所有用户列表中选择具有特定组的用户pw
:
pw usershow -P -a | grep groupname
结果将是这样的:
Login Name: username1 #1024 Group: groupname #1002
Login Name: username2 #1025 Group: groupname #1002
答案2
在 FreeBSD 下显示某个组中的所有用户的正确方法是:
# pw groupshow groupname
答案3
忽略诸如 的系统脚本getent
,用户可以通过两种方式加入某个组:要么是他们在 /etc/passwd 中定义的主要组,要么是他们在 /etc/groups 中将其作为次要组。
GROUPID=1000
sed -rn "s/^[^:]*:[^:]*:$GROUPID://p" < /etc/group | tr ',' '\n'
sed -rn "s/^([^:]*):[^:]*:[^:]*:$GROUPID:.*/\\1/p" < /etc/passwd
应该做得很好。awk
可能会看起来更好......
GROUPID=1000
awk -F: -v "g=$GROUPID" '{if ($3==g) print $1;}' /etc/passwd
awk -F: -v "g=$GROUPID" '{if ($3==g) print $4;}' /etc/group | tr ',' '\n'
答案4
pw group 显示 ftpgroup
ftp 组:*:2001:
pw 集团展示轮子
车轮:*:0:root,fred,carl
pw团体表演视频
视频:*:44:lightdm
pw 用户显示 ftp
ftp:*:2002:2001::0:0:PureFTP 用户:/不存在:/usr/sbin/nologin
pw user show carl
carl:$6$SDkXHtJyIp53egpl$XBg3cuem.RLW63Pa0E16Qw4hmc96lXFgC/fTwCSnDEgYE/OhairDv.mX193ToC6PaQfsp.NegsqEYMHSMxinE/:1003:1003::0:0:Carl Dubak:/home/carl:/usr/local/bin/fish
pw user show fred
fred:$6$alWrCEOtGuU1Bx7t$oWXCNkP4t4yQVn5.0ZKuJqAtCNXkR5ywcdI0Guxqv3myDI.u/qrqUzBX7BW4jmwLFHDd00tCdyGt3A9Q6T4s4/:1002:1002::0:0:Fred Finster:/home/fred:/usr/local/bin/fish
getent passwd {carl}
carl:$6$SDkXHtJyIp53egpl$XBg3cuem.RLW63Pa0E16Qw4hmc96lXFgC/fTwCSnDEgYE/OhairDv.mX193ToC6PaQfsp.NegsqEYMHSMxinE/:1003:1003:Carl Dubak:/home/carl:/usr/local/bin/fish
getent passwd {fred}
fred:$6$alWrCEOtGuU1Bx7t$oWXCNkP4t4yQVn5.0ZKuJqAtCNXkR5ywcdI0Guxqv3myDI.u/qrqUzBX7BW4jmwLFHDd00tCdyGt3A9Q6T4s4/:1002:1002:Fred Finster:/home/fred:/usr/local/bin/fish
id
id=0(根) gid=0(车轮) groups=0(车轮),5(操作员)
id 1003
uid=1003(carl) gid=1003(carl) groups=1003(carl),0(车轮),5(操作员)
id 1002
uid=1002(fred) gid=1002(fred) groups=1002(fred),0(wheel),5(operator),145(webcamd)
id 5
uid=5(kmem)gid=65533(无群组)groups=65533(无群组)
id {operator}
uid=2(操作员)gid=5(操作员)groups=5(操作员)