在Azure AKS容器中以root身份读取文件时拒绝权限



我有AKS已部署集群(version1.19)),部分部署在kube-systemazure-cni-networkmonitor在pod中打开bash时,使用:

kubectl exec -t -i -n kube-system azure-cni-networkmonitor-th6pv -- bash

我已经注意到,虽然我运行作为根在容器:

uid = 0(根)gid = 0(根)组= 0(根)

有一些文件无法打开读取,读取命令导致权限拒绝错误,例如:

cat: /run/containerd/io.containerd.runtime.v1.linux/k8s.io/c3bd2dfc2ad242e1a706eb3f42be67710630d314cfeb4b96ec35f35869264830/rootfs/sys/module/zswap/uevent: Permission denied

文件统计:

Access: (0200/--w-------)  Uid: (    0/    root)   Gid: (    0/   root)

运行在容器上的Linux发行版:

Common Base Linux Delridge

虽然文件是不可读的,我不应该有一个问题,读取它作为根对吗?
你知道为什么会这样吗?我没有看到任何SELinux启用

/proc和/sys是由内核创建和维护的特殊文件系统,用于提供进入系统中的设置和事件的接口。uevent文件用于访问设备信息或发送事件。

如果给定的子系统实现了通过该接口公开信息的功能,您可以将该文件命名为:

[root@home sys]# cat /sys/devices/system/cpu/cpu0/uevent
DRIVER=processor
MODALIAS=cpu:type:x86,ven0000fam0006mod003F:feature:,0000,0001,0002,0003,0004,0005,0006,0007,0008,0009,000B,000C,000D,000E,000F,0010,0011,0013,0017,0018,0019,001A,001B,001C,002B,0034,003A,003B,003D,0068,006F,0070,0072,0074,0075,0076,0079,0080,0081,0089,008C,008D,0091,0093,0094,0096,0097,0099,009A,009B,009C,009D,009E,009F,00C0,00C5,00E7,00EB,00EC,00F0,00F1,00F3,00F5,00F6,00F9,00FA,00FB,00FD,00FF,0120,0123,0125,0127,0128,0129,012A,012D,0140,0165,024A,025A,025B,025C,025D,025F

但是如果子系统没有公开这个接口,你就会被拒绝——即使是root也不能调用不存在的内核代码。

相关内容