语境:
- 存储是 Kubernetes 持久卷,由 TrueNAS NAS 提供并通过 NFS 访问(使用 k8s accessMode
ReadWriteMany
) - 我已经检查了 TrueNAS 数据集的权限,并确认 RWX 已为用户、组和其他设置(确认这不是最安全的,但它是家庭网络上的敏感数据 - 我想“正确执行”) ,但这不是优先事项)
- 调试 Pod(下面提到)正在使用
ubuntu
图像 - 调试 Pod 上没有
/var/log/audit/audit.log
文件,因此我假设不涉及 SELinux(不过,从该语句的措辞来看,您可能可以正确地推断出我不是 SELinux 方面的专家)
我在已安装的 NFS 驱动器上发现了一个不必要的文件,应该将其删除。我启动了一个新的 Pod 并将 PVC 安装到它上面,但是当我尝试使用rm
该文件时 - 即使我使用了sudo
- 我的权限被拒绝。我还注意到文件 ( nobody
) 的所有权不寻常,并尝试更改它,以防万一这是原因,这也是被禁止的:
$ ls -al
...
-rwxr-xr-x 1 nobody root 1016756 Nov 26 01:21 DELETEME.txt
$ rm DELETEME.txt
rm: cannot remove 'DELETEME.txt': Permission denied
$ sudo rm DELETEME.txt
rm: cannot remove 'DELETEME.txt': Permission denied
$ sudo chown root:root DELETEME.txt
chown: changing ownership of 'DELETEME.txt': Operation not permitted
如果这是由于 Kubernetes 的某些方面造成的,我还尝试直接将 NFS 共享(使用-o rw
)安装到(非 k8s-pod)机器并执行相同的命令,得到相同的结果。
什么可能阻止root
删除或修改此文件?
编辑 1 - AFAICT,NFS 共享是使用777
TrueNas 的权限导出的:
/etc/exports
TrueNAS 盒子上的内容:
# cat /etc/exports
V4: / -sec=sys
/mnt/low-resiliency-with-read-cache/ombi-data -mapall="k8s-user":"k8s-user"
/mnt/high-resiliency/k8s/nfs/vols/pvc-cd6d0f5d-a7d0-47a9-8371-29ab9ca27764 -maproot="root":"wheel"
/mnt/high-resiliency/manual-nfs
/mnt/high-resiliency/k8s/nfs/vols/pvc-a485ee75-9413-4b26-abdd-e5c3c23ef7ba -maproot="root":"wheel"