如何在 Linux 上检查用户所属组
创始人
2024-03-01 23:31:12
0

将用户添加到现有组是 Linux 管理员的常规活动之一。这是一些在大环境中工作的管理员的日常活动。

甚至我会因为业务需求而在我的环境中每天都在进行这样的活动。它是帮助你识别环境中现有组的重要命令之一。

此外,这些命令还可以帮助你识别用户所属的组。所有用户都列在 /etc/passwd 中,组列在 /etc/group 中。

无论我们使用什么命令,都将从这些文件中获取信息。此外,每个命令都有其独特的功能,可帮助用户单独获取所需的信息。

什么是 /etc/passwd?

/etc/passwd 是一个文本文件,其中包含登录 Linux 系统所必需的每个用户信息。它维护有用的用户信息,如用户名、密码、用户 ID、组 ID、用户 ID 信息、家目录和 shell。passwd 每行包含了用户的详细信息,共有如上所述的 7 个字段。

$ grep "daygeek" /etc/passwd
daygeek:x:1000:1000:daygeek,,,:/home/daygeek:/bin/bash

什么是 /etc/group?

/etc/group 是一个文本文件,用于定义用户所属的组。我们可以将多个用户添加到单个组中。它允许用户访问其他用户文件和文件夹,因为 Linux 权限分为三类:用户、组和其他。它维护有关组的有用信息,例如组名、组密码,组 ID(GID)和成员列表。每个都在一个单独的行。组文件每行包含了每个组的详细信息,共有 4 个如上所述字段。

这可以通过使用以下方法来执行。

  • groups: 显示一个组的所有成员。
  • id: 打印指定用户名的用户和组信息。
  • lid: 显示用户的组或组的用户。
  • getent: 从 Name Service Switch 库中获取条目。
  • grep: 代表“ 全局正则表达式打印 global regular expression print ”,它能打印匹配的模式。

什么是 groups 命令?

groups 命令打印每个给定用户名的主要组和任何补充组的名称。

$ groups daygeek
daygeek : daygeek adm cdrom sudo dip plugdev lpadmin sambashare

如果要检查与当前用户关联的组列表。只需运行 groups 命令,无需带任何用户名。

$ groups
daygeek adm cdrom sudo dip plugdev lpadmin sambashare

什么是 id 命令?

id 代表 “ 身份 identity ”。它打印真实有效的用户和组 ID。打印指定用户或当前用户的用户和组信息。

$ id daygeek
uid=1000(daygeek) gid=1000(daygeek) groups=1000(daygeek),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare)

如果要检查与当前用户关联的组列表。只运行 id 命令,无需带任何用户名。

$ id
uid=1000(daygeek) gid=1000(daygeek) groups=1000(daygeek),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare)

什么是 lid 命令?

它显示用户的组或组的用户。显示有关包含用户名的组或组名称中包含的用户的信息。此命令需要管理员权限。

$ sudo lid daygeek
 adm(gid=4)
 cdrom(gid=24)
 sudo(gid=27)
 dip(gid=30)
 plugdev(gid=46)
 lpadmin(gid=108)
 daygeek(gid=1000)
 sambashare(gid=124)

什么是 getent 命令?

getent 命令显示 Name Service Switch 库支持的数据库中的条目,它们在 /etc/nsswitch.conf 中配置。

$ getent group | grep daygeek
adm:x:4:syslog,daygeek
cdrom:x:24:daygeek
sudo:x:27:daygeek
dip:x:30:daygeek
plugdev:x:46:daygeek
lpadmin:x:118:daygeek
daygeek:x:1000:
sambashare:x:128:daygeek

如果你只想打印关联的组名称,请在上面的命令中使用 awk

$ getent group | grep daygeek | awk -F: '{print $1}'
adm
cdrom
sudo
dip
plugdev
lpadmin
daygeek
sambashare

运行以下命令仅打印主群组信息。

$ getent group daygeek
daygeek:x:1000:

什么是 grep 命令?

grep 代表 “ 全局正则表达式打印 global regular expression print ”,它能打印文件匹配的模式。

$ grep "daygeek" /etc/group
adm:x:4:syslog,daygeek
cdrom:x:24:daygeek
sudo:x:27:daygeek
dip:x:30:daygeek
plugdev:x:46:daygeek
lpadmin:x:118:daygeek
daygeek:x:1000:
sambashare:x:128:daygeek

如果你只想打印关联的组名称,请在上面的命令中使用 awk

$ grep "daygeek" /etc/group | awk -F: '{print $1}'
adm
cdrom
sudo
dip
plugdev
lpadmin
daygeek
sambashare

via: https://www.2daygeek.com/how-to-check-which-groups-a-user-belongs-to-on-linux/

作者:Prakash Subramanian 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

人工智能(AI)初创公司T...
观点网讯:2月12日,资本市场消息,人工智能初创公司Tines完成...
2025-02-12 08:17:46
不重复div标签使用ngM...
要在不重复的div标签中使用ngModelGroup,可以使用以下...
2025-01-12 13:00:12
不知道为什么:Attrib...
出现这个错误是因为Python中的列表(list)对象没有grou...
2025-01-12 10:00:57
不支持的事件循环组类型:使...
出现“不支持的事件循环组类型:使用pgjdbc-ng的NioEve...
2025-01-11 21:01:45
不允许在Group by函...
在SQL中,Group by函数用于将结果集按照指定的列进行分组,...
2025-01-11 13:31:56
不用在span中包装的tr...
在Vue中,transition-group组件需要在具体的元素上...
2025-01-11 09:30:51

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...