Azure文件的权限

问题描述 投票:0回答:1

我正在使用azure文件作为kubernetes的卷,但是我遇到了问题。

我可以设置整个共享的权限,但不能更改特定文件/目录的权限。

如果我为整个共享设置默认权限(例如644(rw / r / r)),并尝试更改特定文件(例如Chmod 0644文件)的权限,则chmod不会生效,它始终是默认权限。

即使我没有提到默认权限,也需要0777,但我无法更改共享内文件/目录的权限。

我进行了一些研究,发现尚未实现此功能,来源是2016年,我希望现在启用此功能?

否则还有其他解决方案可以提出吗?

问候,


更新

非常感谢@ Charles Xu的建议,它非常有用。我用了你的介词,但让我解释一下我的用例:

  • 我需要在同一目录上具有不同的文件权限,因为该目录用于SSH。我可以更改文件夹。ssh的权限,因此其中的所有文件都具有0644,但是如您所知,我必须将私钥的权限更改为0600
  • 必须更改私钥的权限,否则SSH无法使用。

    -rw-r--r-- 1个userx用户x 182 Oct 8 15:13配置

    -rw-r--r- 1个userx用户x 1675年10月8日15:13 id_rsa

    -rw-r--r-- 1个userx用户x 409十月8 15:13 id_rsa.pub

azure kubernetes permissions chmod
1个回答
1
投票

首先,将整个Azure文件共享作为持久卷安装在Pod上时,您只能控制整个Azure文件共享的权限。它不支持更改共享内部特殊文件的权限。

我建议您可以将文件过滤到不同的目录中,并且同一目录中的文件具有相同的权限。然后,您可以将Azure文件共享的目录作为不同的持久卷安装到Pod,并根据需要设置具有不同权限的持久卷。

例如,您需要一个目录为0644的目录及其中的文件为0664的目录。然后,您可以像这样创建一个持久卷:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: azurefile
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  storageClassName: azurefile
  azureFile:
    secretName: azure-secret
    shareName: aksshare/subfolder1
    readOnly: false
  mountOptions:
  - dir_mode=0644
  - file_mode=0664
  - uid=1000
  - gid=1000
  - mfsymlinks
  - nobrl

并创建一个PersistentVolumeClaim,它将使用您在上面创建的PersistentVolume:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: azurefile
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: azurefile
  resources:
    requests:
      storage: 5Gi

最后,使用具有volumes的PersistentVolumeClaim创建容器,如下所示:

...
  volumes:
  - name: azure
    persistentVolumeClaim:
      claimName: azurefile

没问题时,您会看到类似您在下面设置的内容:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.