在 FreeBSD 中获取组中的用户列表

在 FreeBSD 中获取组中的用户列表

如何获取在 FreeBSD 11.1 中分配给某个组的用户名列表?

这个问题要求提供用户列表或者群组列表。

这个问题询问恰好是多个特定组成员的用户。

➥ 但是如何简单地询问当前分配给单个特定组的用户列表,例如wheel

如果可能的话,我更喜欢用单个命令解决问题。但如果不可行,那么脚本会很有用,也很有教育意义。

答案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(操作员)

相关内容