我使用的 AWS 映像由于某种原因被配置为我似乎无法创建任何名为 /etc/passwd.xxx 的文件(为 x 插入任何内容)。我可以创建名为 test、test.xxx 等的文件,它似乎只禁止创建以 passwd 开头的文件。
这是一个问题,因为 groupmod 命令在运行时会尝试创建 passwd.xxxxx(其中 x 是随机数)文件。大概在创建文件后,它会使用 passwd.xxxxx 文件切换 passwd,但它不会走到这一步,因为它无法创建 passwd.xxxxx 文件。如果我创建的组已存在具有不同的 GID,这反过来会导致我的 ansible 脚本失败。
所以问题是为什么只有特定结构的文件会被拒绝创建,而其他所有文件都可以创建。
Strace 给出了不太有用的错误
open("/etc/passwd.23491" O_WRONGLY|O_CREAT|O_TRUNC 0600) = -1 EACCESS (Permission denied)
我所有的事情都使用 sudo 。
/etc 有 755 权限,/etc 的 lsattr 是
---------I--e-- /etc
我已经查过了,大写的 i 和小写的 i 不一样。 cap 我的意思是它使用散列树进行索引
我尝试将selinux设置为宽容模式,但问题仍然出现。查看selinux日志,唯一的avc被拒绝错误是sshd的comm和eic_run_authorized_keys的名称,我怀疑这与passwd文件创建有关。我可以看到 groupmod 的系统调用,但没有与它们相关的明显错误。
为什么我无法创建 passwd.xxxx 文件以及如何修复它以允许该文件?