如何列出Linux中的所有组?
时间:2020-02-23 14:39:51 来源:igfitidea点击:
Linux组是用户的集合。
它们旨在轻松地向一组用户提供特权。
在本教程中,我们将研究列出Linux中所有组的各种方法。
列出Linux中所有组的2种方法
- /etc/group文件
- getent命令
1./etc/group文件
/etc/group文件包含所有本地组。
因此,我们可以打开该文件并查看所有组。
root@localhost:~# cat /etc/group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog tty:x:5: disk:x:6: lp:x:7: mail:x:8: news:x:9: ...
Linux列出所有组/etc/group文件
如果要查找特定的组,请使用grep命令将其过滤掉。
root@localhost:~# cat /etc/group | grep sudo sudo:x:27:theitroad,test root@localhost:~#
2. getent命令
Linux getent命令从名称服务交换机库支持的数据库中获取条目。
我们可以使用它从组数据库中获取所有组信息。
root@localhost:~# getent group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog tty:x:5: ...
让我们看看列出Linux中所有组的更多示例。
Linux列出所有组名
我们可以使用cut命令仅打印组名。
当我们在shell脚本中寻找特定的组名存在时,这很有用。
root@localhost:~# cut -d: -f1 /etc/group root daemon bin sys adm tty ...
我们也可以将cut命令与getent命令一起使用。
root@localhost:~# getent group | cut -d: -f1 root daemon bin sys adm tty disk ...
Linux打印所有组名getent和cut命令
cut命令使用冒号(:)分隔符分割每一行。
然后,使用-f1选项选择第一个字段,即组名。
以字母顺序列出所有组名
上面的命令输出可以传递给sort命令以自然排序顺序输出输出。
root@localhost:~# getent group | cut -d: -f1 | sort adm audio backup bin cdrom crontab daemon ...
所有Linux组的数量
如果您对linux组的数量感兴趣,请使用以下命令。
root@localhost:~# cat /etc/group | grep -c "" 68 root@localhost:~# getent group | grep -c "" 68 root@localhost:~#
列出用户的所有组
我们可以使用groups命令来获取用户的所有组。
root@localhost:~# groups theitroad theitroad : theitroad sudo test_users test_users_pwd root@localhost:~# root@localhost:~# groups root root : root root@localhost:~#
当前用户的列表组
如果您在没有任何用户输入的情况下运行groups命令,它将打印当前用户的组。
root@localhost:~# groups root root@localhost:~# su - theitroad theitroad@localhost:~$groups theitroad sudo test_users test_users_pwd theitroad@localhost:~$
列出用户组以及组ID
我们可以使用id命令来打印用户信息。
此命令列出所有组及其组ID。
root@localhost:~# id theitroad uid=1002(theitroad) gid=1003(theitroad) groups=1003(theitroad),27(sudo),1004(test_users),1007(test_users_pwd) root@localhost:~# root@localhost:~# id root uid=0(root) gid=0(root) groups=0(root) root@localhost:~#
列出组中的所有用户
我们可以使用getent命令或者/etc/groups文件来获取属于一个组的所有用户。
root@localhost:~# getent group sudo sudo:x:27:theitroad,test root@localhost:~# root@localhost:~# getent group sudo | cut -d: -f4 theitroad,test root@localhost:~#