Linux VM 的文件权限问题 - 无法读取文件

Linux VM 的文件权限问题 - 无法读取文件

我已经构建了 Rocky Linux (9.1) 虚拟机,但我遇到了某些文件的权限问题。另请注意(查看链接的“类似问题”后),这是本地挂载,而不是 NFS 或任何远程挂载。

文件的匿名权限是这样的: -r--r--r--. 1 engineer myadmin <filesize> <date> filename.jar

对于 SE Linux 环境: unconfined_u:object_r:defailt_t:s0 filename.jar

id为用户 运行提供以下输出:uid=1001(engineer) gid=1002(myadmin) groups=1002(myadmin),1001(engineer) context=unconfirmed_u:unconfirmed_r_unconfirmed_t:s0

任何读取该文件的尝试都会遇到: cannot open 'filename.jar' for reading: Operation not permitted

我尝试查看文件权限、安装选项、SE Linux 权限和用户组。我希望用户engineer应该能够读取该文件。

驱动器的安装选项有: rw,seclabel,relatime

所有读取文件的尝试都会导致Operation not permitted.

我缺少什么?


根据评论中的要求提供附加信息:

得出的结果journalctl -n 100是:

<timestamp> <hostname> login[<pid>]: pam_unix(login:session): session opened for user engineer(uid=1001) by engineer(uid=0)
<timestamp> <hostname> login[<pid>]: LOGIN ON pts/1 BY engineer

dmesg不提供有关尝试打开文件的信息。

SE Linux 已存在,但处于permissive模式中,因此无论如何不应限制任何内容。

答案1

它并没有selinux阻止访问,但是fapolicyd。具体来说,这是一条规定deny_audit perm=any all: ftype=application/java-archive

解决方案:

  • systemctl stop fapolicyd(禁用文件访问策略应用)
  • 运行fapolicyd --debug-deny(显示不允许的访问)
  • 尝试打开先前指示的文件Operation not permitted
  • 观察它违反了哪一条规则
  • 仔细阅读 的联机帮助页fapolicy.rules(5),并构建一个新的规则文件,允许组或用户打开 java 档案(.jar文件)以及 java 小程序(.class文件)
  • 运行fagenrules --load以安装新创建的规则
  • 停止并重新启动fapolicy --debug-deny
  • 尝试打开与上面相同的文件,并实际打开它(没有记录规则)
  • 欢呼或握拳,表明我知道如何解决我的问题(此步骤是可选的)
  • fapolicyd使用命令重新启动systemctl enable --now fapolicyd

相关内容