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
例子: