在Linux中找出用户属于哪个组的5种方法对于一些面临更大环境的管理员来说,这是一项日常活动。我每天都在我自己的环境中这样做,因为我的环境广阔而且因为我的工作需要。这个重要的命令可以帮助您识别Linux系统上的现有组。这些命令可帮助您识别用户属于哪些组。所有系统用户都列在/etc/passwd文件中,组列在/etc/group文件中,实际密码存储在/etc/shadow文件中。无论我们使用什么命令,它都会从这些文件中获取信息。此外,每个命令都有自己独特的功能,允许用户只获取他们需要的信息。Linux中有两种类型的组:主要组:主要组是与用户帐户关联的主要组。每个用户都必然是单个主要组的成员。二级组:二级组用于向用户授予额外的权限。每个用户都可以是多个辅助组的成员。/etc/passwd文件是什么?“/etc/passwd”是一个文本文件,其中包含每个用户登录Linux系统所需的信息。它维护有关用户的有用信息,例如用户名、密码、用户ID、组ID、用户信息、主目录和shell。如上所述,密码文件中的每个用户配置文件都是一行,有七个字段。$grep"daygeek"/etc/passwddaygeek:x:1000:1000:daygeek,,,:/home/daygeek:/bin/bash/etc/group文件是什么?“/etc/group”是一个文本文件,定义了用户属于哪个组。我们可以将多个用户添加到同一个组。Linux权限分为三类:用户、组和其他,允许用户访问其他用户的文件和文件夹。它维护有关组的有用信息,例如组名、组密码、组ID(GIT)和成员列表。如上所述,组文件中的每个组详细信息都是一行,包含四个字段。您可以使用以下七个命令来执行此操作。groups:显示该组的所有成员。id:打印出指定用户名的用户和组信息。lid或libuser-lid:显示用户所在的组或用户组。getent:从NameServiceSwitch获取条目。compgen:compgen是一个bash内置命令,它将为用户显示所有可用的命令。members:列出组的成员。/etc/group文件:另外,我们可以从/etc/group文件中查看到对应用户所属的组。方法一:在Linux中如何使用groups命令查看一个用户属于哪些组?groups命令打印出特定用户名的主组和子组的名称。$groupsdaygeekdaygeek:daygeekadmcdromsudodipplugdevlpadminsambashare如果要检查与当前用户关联的组列,只需运行不带任何用户名的“groups”命令。$groupsdaygeekadmcdromsudodipplugdevlpadminsambashare方法二:Linux中如何使用id命令查看用户属于哪些组?id命令表示身份。它打印真实有效的用户、组和补充组信息,例如用户名、UID、组名和GUID。$iddaygeekuid=1000(daygeek)gid=1000(daygeek)groups=1000(daygeek),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare)如果要检查与当前用户关联的组列表,只需运行不带任何用户名的“id”命令。$iduid=1000(daygeek)gid=1000(daygeek)groups=1000(daygeek),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare)方法三:linux中如何使用lid命令查看用户属于哪些组?lid或libuser-lid命令显示有关组的信息,包括用户名或组名中包含的用户。此命令需要sudo权限。您应该在较新的系统上运行libuser-lid命令而不是lid命令。$sudolibuser-liddaygeekadm(gid=4)cdrom(gid=24)sudo(gid=27)dip(gid=30)plugdev(gid=46)lpadmin(gid=116)daygeek(gid=1000)sambashare(gid=126)方法四:在Linux中如何使用getent命令找出用户属于哪些组?getent命令显示NameServiceSwitch库支持的数据库的条目,该库已在/etc/nsswitch.conf中配置。$getentgroup|grepdaygeekadm:x:4:syslog,daygeekcdrom:x:24:daygeeksudo:x:27:daygeek,2gadmindip:x:30:daygeekplugdev:x:46:daygeeklpadmin:x:116:daygeekdaygeek:x:1000:sambashare:x:126:daygeek如果您只想打印出特定用户的关联组的名称,请将awk命令与上述命令一起使用。$getentgroup|grepdaygeek|awk-F:'{print$1}'admcdromsudodipplugdevlpadmindaygeeksambashare运行以下命令只打印主要组的信息。$getentgroupdaygeekdaygeek:x:1000:方法五:Linux下如何使用/etc/group文件查找用户属于哪些组?使用grep命令,您可以轻松地从/etc/group文件中打印出有关用户相关组的信息。grep命令是指“全局正则表达式打印”,它从一个文件中打印出匹配的模式。$grepdaygeek/etc/groupadm:x:4:syslog,daygeekcdrom:x:24:daygeeksudo:x:27:daygeek,2gadmindip:x:30:daygeekplugdev:x:46:daygeeklpadmin:x:116:daygeekdaygeek:x:1000:sambashare:x:126:daygeek如果您只想打印出用户关联组的名称,请将awk命令与上述命令一起使用。$grepdaygeek/etc/组|awk-F:'{print$1}'admcdromsudodipplugdevlpadmindaygeeksambashare方法六:如何在Linux下使用Bash脚本找出用户属于哪些组?您可以使用简单的bash脚本来完成此操作。$foruserin$(cut-d":"-f1/etc/passwd);dogroups$user;doneroot:rootdaemon:daemonwww-data:www-datanagcmdsaned:sanedscannerpulse:pulseaudioavahi:avahicolord:colordhplip:lpgeoclue:geocluegnome-initial-setup:nogroupgdm:gdmdaygeek:daygeekadmcdromsudodipplugdevlpadminsambasharesshd:nogroupthanu:thanurenu:renu2gadmin:2gadminsudotestuser:testuserdemouser:demousersudha:sudhasuresh:sureshmysql:mysqlntp:ntpu1:u1u2:u2u3:u3u45u4u5:uUsethefollowingscriptforspecificusernagios:u$foruserindaygeek2gadmin;dogroups$user;donedaygeek:daygeekadmcdromsudodipplugdevlpadminsambashare2gadmin:2gadminsudo另一种补充方法1:Linux下如何使用compgen命令找出所有组?compgen是一个bash内置命令,可以显示Linux系统下的所有组。$compgen-grootdaemonbinsysadmttydisklpmailnewsuucp..gdmdaygeeksambasharethanurenu2gadmintestuserdemousersudhasureshadminu1u2u3u4u5nagiosnagcmd另一种补充方法2:Linux下如何使用member命令列出组成员?member命令允许您在Linux下列出一个组的成员。$memberssudodaygeek2gadmin原标题:5MethodstoFindOutWhichGroupaUserBelongsinLinux,作者:PrakashSubramanian
