确保/etc/passwd中的组都存在
若“/etc/passwd”中指定的用户组在“/etc/group”中不存在,将引发权限管理风险。手动修改这两个文件时,若操作不当,容易导致用户组配置错误,影响系统安全性。因此,应确保“/etc/passwd”中涉及的所有用户组在“/etc/group”中真实存在。
操作步骤
- 请通过如下脚本进行检查。
#!/bin/bash grep -E -v '^(halt|sync|shutdown)' "/etc/passwd" | awk -F ":" '($7 != "/bin/false" && $7 != "/sbin/nologin") {print $4}' | while read group; do grep -q -P "^.*?:[^:]*:$group:" "/etc/group" if [ $? -ne 0 ]; then echo "Group $group not found" fi done- 若无返回输出,则表示用户组均设置正确,无需执行后续操作。
- 若有返回输出,请执行2。
- 分析两个文件不匹配的原因,支持以下两种修复方式。
- 方式一:通过删除账号,重新添加的方式进行修复。
userdel -r test useradd test
- 方式二:通过删除或添加组的方式进行修复(其中,xxx表示GID)。
groupdel testgroup groupadd -g xxx testgroup
- 方式一:通过删除账号,重新添加的方式进行修复。
父主题: 安全访问