📜  Linux 中的 grpck 命令和示例

📅  最后修改于: 2022-05-13 01:57:34.096000             🧑  作者: Mango

Linux 中的 grpck 命令和示例

Linux 系统中的grpck命令验证组信息的完整性。它检查/etc/group/etc/gshadow中的所有条目是否具有正确的格式并包含有效数据。提示用户删除格式不正确或有不可纠正错误的条目。

句法:

grpck [options] [group [gshadow]]

描述:进行检查以验证每个条目是否具有:

  • 正确的字段数
  • 唯一且有效的组名
  • 有效的组标识符(仅限 /etc/group)
  • 有效的成员和管理员列表
  • etc/gshadow 中的相应条目(分别用于 gshadow 检查)

检查正确的字段数和唯一的组名是致命的。如果条目的字段数错误,将提示用户删除整行。对 / etc/group/etc/gshadow文件进行操作的命令无法更改损坏或重复的条目。在这些情况下应该使用grpck来删除有问题的条目。

配置: /etc/login.defs 中的以下配置变量会更改此工具的行为:



  • 每个组条目的最大成员数。当达到最大值时,会在 /etc/group 中启动一个新的组条目(行)(具有相同的名称、相同的密码和相同的 GID)。
  • 默认值为 0,表示组中的成员数量没有限制。
  • 此功能(拆分组)允许限制组文件中的行长度。这有助于确保 NIS 组的行不超过 1024 个字符。

退出值: grpck 命令以下列值退出:

  • 0 – 成功
  • 1 – 无效的命令语法
  • 2 – 一个或多个坏组条目
  • 3 – 无法打开群组文件
  • 4 – 无法锁定组文件
  • 5 – 无法更新组文件

没有任何选项的 grpck 命令:它会立即给出两条消息

  • 没有权限。
  • 无法锁定 /etc/group;稍后再试。

例子:

我们不能直接使用 grpck 命令。只有管理员root用户可以使用此命令。

grpck 命令的不同选项:

当我们是管理员或 root 用户时,我们可以使用 grpck 命令。使用下面给出的命令进入 root 或管理员模式。



Sudo -i

例子:

现在我们将创建用户并应用grpck命令来查看它是如何工作的。我们可以使用此命令创建组和用户。

addgroup group_name
adduser user_name -G group_name

addgroup:用于创建组。
adduser:用于创建用户。

我们可以立即创建任意数量的用户,这里我只通过一个命令创建 100 个用户:

for i in `seq 1 100`; do echo adduser -G group1 "user$i"|| break ;done

例子:

用户和组配置文件:我们从开头看到了一些未知的东西,比如 /etc/passwd、/etc/shadow 等。让我们看看这些未知符号代表什么。

  • 这些是在用户创建后发挥作用的配置文件。

    etc/passwd:当添加新用户时,信息在 /etc/passwd 中以冒号分隔的单行形式存储。以下是此文件中条目的示例:

    # tail -1 /etc/passwd 
  • etc/shadow:使用影子密码,当创建新用户时,新条目会自动添加到 /etc/shadow 中。此文件只能由 root 用户查看。以下是此文件中条目的示例:
    # tail -1 /etc/shadow 
  • etc/gshadow:散列组密码存储在此文件中。但是,很少使用组密码。以下是此文件中条目的示例:
    # tail -1 /etc/gshadow 
  • etc/group:由于 Oracle Linux 使用 UPG 方案,当添加新用户时,会在 /etc/group 中自动创建一个新条目。组名与用户名相同。以下是此文件中条目的示例:
    # tail -1 /etc/group 

现在我们成功地将用户存储在组内并了解所有配置文件。



选项:

1. -r –read-only以只读模式执行 grpck 命令。这会导致在没有用户干预的情况下回答所有有关更改的问题。

grpck -r /etc/passwd 

例子:

2. -s –sort按 GID(组 ID)对 /etc/group /etc/gshadow 中的条目进行排序。

grpck -s /etc/group 

例子: