AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 605812
Accepted
Thomas L Holaday
Thomas L Holaday
Asked: 2014-06-18 09:06:48 +0800 CST2014-06-18 09:06:48 +0800 CST 2014-06-18 09:06:48 +0800 CST

/etc/passwd 显示组中的用户,但 /etc/group 不显示

  • 772

我想验证用户帐户filesender_1是否是组valid_senders的成员。

当我查看 /etc/group 时,filesender_1不存在:

valid_senders:x:12345:production_1

我将其读作“production_1 是组 valid_senders 的唯一成员,其组 ID 为 12345。”

然而:

当我查看 /etc/passwd 时,为filesender_1列出了valid_senders的组 ID ...

filesender_1:x:1515:12345:filesender_1:/local/home/filesender_1:/bin/sh

...所以我知道valid_senders是 filesender_1 的主要组。

这是一个令人惊讶的差异,还是 /etc/group 仅列出该组次要的成员是否正常?

linux
  • 5 5 个回答
  • 35600 Views

5 个回答

  • Voted
  1. lsd
    2014-06-18T11:05:15+08:002014-06-18T11:05:15+08:00

    是的,主要组和辅助组之间存在差异。主要组是 中显示的主要组/etc/passwd,用户在登录时所在的组。对于要在补充组中的用户,他们的用户名将添加到 中的组条目中/etc/group。如果您使用id -a <user>,它将显示主要组和辅助组。补充组提供对资源的访问权限,但任何新文件都是使用主要组创建的。

    newgrp您可以使用该命令更改用户当前活动的主要组。

    用户不必让主要组也成为次要组。它所要做的就是减少用户可以加入的辅助组的数量。传统上,一个用户仅限于 32 个辅助组,但近年来可能发生了变化。

    usermod可以在一个命令中设置用户的主要和辅助组。使用像 puppet 这样的配置管理工具也可以做到这一点,而不必担心在不同类型的 unix 上需要什么特定的命令。

    • 15
  2. Best Answer
    John
    2014-06-18T09:12:24+08:002014-06-18T09:12:24+08:00

    是的,这种差异是正常的。我已经看过很多次了,我不再查看/etc/passwdand/etc/group文件,而是开始以应该查看的方式查看组成员身份:getent group <groupname>和groups <username>.

    • 13
  3. DJ Far
    2018-01-20T07:13:45+08:002018-01-20T07:13:45+08:00

    有一个名为members的程序可以安装在大多数 Linux 发行版上,它列出了组的实际成员,无论它是主要组还是辅助组。

    通常,当创建用户时没有使用 -g 或 --gid 指定组,默认行为是将其主组设置为其用户名,并且此 gid 不会放在 /etc/group 文件中。因此,用户 joe 创建的文件和目录将拥有 joe:joe 的所有权。但是您不会在 /etc/group 文件中找到组 'joe'。

    如果您将用户 joe 添加到组“学生”中,则运行

    getent group students
    

    将在学生组的用户列表中显示 joe 。

    运行程序

    members <groupname>
    

    on a group 将显示属于groupname的主要或辅助成员的用户。

    • 2
  4. Medievalist
    2019-05-16T12:40:42+08:002019-05-16T12:40:42+08:00

    一般来说,系统管理员应该在 /etc/group 中将用户添加到他们的主要组的成员列表中,因为 getpwent() 系列系统调用将在调用时删除重复项。程序不应该直接读取 /etc/group 或 /etc/passwd,它们应该使用系统调用。这一切已经存在至少 20 年了,而且可能更久。

    • 0
  5. Jarod
    2018-02-14T04:20:02+08:002018-02-14T04:20:02+08:00

    你应该使用 lid -g <group>'

    • -3

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve