Linux 中列出组的各种命令和技术指南
在 Linux 生态系统中,用户的集合被称为“组”。当一个用户被添加到一个组中时,我们定义了一个 Linux 用户的权限。组还定义了用户应该有权访问的文件、设置和文件夹。
用最简单的术语来说,组可以帮助您找出并设置权限,例如 read (r
), 写 (瓦
) 并执行 (X
) 在用户之间共享的资源上。您还可以根据需要更改这些权限。
找出用户帐户所属的组将帮助您了解特定用户拥有的权限,并在需要时更改权限。
这个简短的教程将帮助您使用一些非常简单的命令和技术找出用户所属的组。
重要的先决条件
在深入学习本教程之前,如果您对一些概念有一个基本的了解会很有帮助。我建议初学者首先了解这些概念。
团体: Linux 系统上的用户集合。一个用户可以是多个组的成员。组定义了用户拥有的权限。
主要组: 主要组是与用户帐户关联的主要组。每个用户必须是单个主要组的成员。它是在创建用户帐户的同时创建的,并且用户会自动添加到该组中。通常,主组的名称与用户的名称相同。
次要组:次要组是可选的,用户可能有也可能没有次要组。它用于向用户授予一些额外的权限。用户可以是多个次要组的成员。
/etc/组
文件: 在 Linux 中,组成员身份由 /etc/组
文件。它是一个简单的文本文件,包含一个组列表和属于每个组的用户。
/etc/passwd
文件:此文件包含系统上所有用户帐户的信息。此文件中每行表示一个用户帐户的条目。
使用 团体
命令
使用 团体
命令是一个超级简单的过程,用于列出当前用户所属的组。您也可以使用此命令列出在系统中注册的特定用户的组。
句法:
团体
输出:
gaurav@ubuntu:~$ 组 gaurav adm cdrom sudo dip plugdev lpadmin sambashare gaurav@ubuntu:~$
查找特定用户的组。
句法:
组 [用户名]
例子:
gaurav@ubuntu:~$ 组 tomcat tomcat : tomcat lpadmin sambashare gaurav@ubuntu:~$
在这个例子中,我列出了用户命名的组 公猫 属于。
使用 ID
命令
使用 ID
命令显示用户的组信息。它显示的参数如下 用户界面
(用户身份), 吉德
(group id) 和用户所属的组列表。
句法:
id [用户名]
例子:
gaurav@ubuntu:~$ id tomcat uid=1002(tomcat) gid=1002(tomcat) groups=1002(tomcat),113(lpadmin),128(sambashare) gaurav@ubuntu:~$
ID
命令在不带参数的情况下使用时返回有关当前用户的组信息。
例子:
gaurav@ubuntu:~$ id uid=1000(gaurav) gid=1000(gaurav) 组=1000(gaurav),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev) ,113(lpadmin),128(sambashare) gaurav@ubuntu:~$
这里显示当前用户的组信息。
使用 /etc/group 文件
正如在先决条件块中讨论的那样,我们知道 /etc/组
文件包含系统上可用组的所有信息。我们可以使用此文件使用如下简单命令查看组列表。
您可以使用 猫
, 较少的
或者 格雷普
命令列出打开此文件的内容。
少 /etc/group
输出:
root:x:0: 守护进程:x:1: bin:x:2: sys:x:3: adm:x:4:syslog,gaurav tty:x:5: 磁盘:x:6: lp:x:7 : mail:x:8: news:x:9: uucp:x:10: man:x:12: proxy:x:13: kmem:x:15: dialout:x:20: fax:x:21: voice :x:22: cdrom:x:24:gaurav 软盘:x:25: 磁带:x:26: sudo:x:27:gaurav 音频:x:29:pulse dip:x:30:gaurav,batman www-data :x:33:
这将列出 Linux 系统上的整个组。
列出所有组使用 getent
命令
getent
命令可用于显示 Linux 系统上所有可用组的列表。输出类似于内容的输出 /etc/组
文件。
使用 getent 组
命令显示配置的数据库中的条目 /etc/nsswitch.conf
文件。
句法:
getent 组
例子:
gaurav@ubuntu:~$ getent group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog,gaurav tty:x:5: disk:x :6: lp:x:7: mse dip:x:30:gaurav,batman:x:39: stmp:x:43: video:x:44: sasl:x:45: plugdev:x:46:gaurav 工作人员:x:50: 游戏:x:60: 用户:x:100: 106: crontab:x:107: vahi:x:120: 蓝牙:x:121: 扫描仪:x:122:saned colord:x:123:脉冲:x:124:脉冲访问:x:125:rtkit:x:126:saned:x:127:三位一体:x:1000:sambashare:x:128:gaurav mongodb:x:130:mongodb来宾tqrhc7: x:999: 客人-piinii:x:998: scala:x:997: sbt:x:996: 客人-oi9xaf:x:995: tomcat:x:1001: tomcat7:x:132: tomcat8:x:133: geoclue:x:105: gdm:x:134: mysql:x:129: couchdb:x:131: 临时:x:1002:
要查找特定用户的组,请使用以下命令。
getent 组 | grep [用户名]
例子:
gaurav@ubuntu:~$ getent group | grep gaurav adm:x:4:syslog,gaurav cdrom:x:24:gaurav sudo:x:27:gaurav dip:x:30:gaurav,batman plugdev:x:46:gaurav lpadmin:x:113:gaurav gaurav: x:1000: sambashare:x:128:gaurav gaurav@ubuntu:~$
与用户 gaurav 关联的所有组现在都列在终端上。
使用 libuser-lid
命令
libuser-lid
命令显示有关包含用户名的组或包含在组名中的用户的信息。
笔记:这个命令需要 须藤
特权。否则你会遇到如下错误-
初始化 libuser 时出错:未以超级用户权限执行未指定用户名,
万一如果 libuser-lid
实用程序在您的发行版上不可用,您可以使用以下命令安装它。
为了 Ubuntu 和 Debian 用户:
sudo apt-get 更新
sudo apt-get 安装 libuser
为了 CentOS, 软呢帽 和其他发行版:
须藤 yum 安装 libuser
句法:
sudo libuser-lid [用户名]
例子:
gaurav@ubuntu:~$ sudo libuser-lid gaurav
输出:
adm(gid=4) cdrom(gid=24) sudo(gid=27) dip(gid=30) plugdev(gid=46) lpadmin(gid=113) trinity(gid=1000) sambashare(gid=128)
此处列出了与输入的用户名相关联的所有组。
结论
在这个超级简单的教程中,我们现在已经学会了显示 Linux 系统上可用的组。本教程中解释的命令可以以相同的方式应用于所有 Linux 发行版。