我有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也不能调用不存在的内核代码。