# 在 emptyDir 卷上设置权限

LLMS index: [llms.txt](/llms.txt)

---

<!--
title: Set Permissions on an emptyDir Volume
content_type: task
weight: 215
min-kubernetes-server-version: v1.37
-->

<!-- overview -->



















<div class="feature-state-notice feature-alpha" title=" 特性门控： EmptyDirVolumeMode">
  <span class="feature-state-name">特性状态：</span>
  <span class="feature-state-details">
    
    <span class="feature-state-stage">Alpha</span> since Kubernetes v1.37; （默认禁用）
    </span>
</div>


<div class="feature-alpha">
  
  
  <details>
    <summary>More information about this feature</summary>
    <p>To use this feature, you (or a cluster administrator) will need to enable the <a href=\"/docs/reference/command-line-tools-reference/feature-gates/#EmptyDirVolumeMode\"><tt>EmptyDirVolumeMode</tt></a> feature gate for all relevant components in your cluster.</p>
<p>See <a href=\"/docs/tasks/administer-cluster/configure-feature-gates/\">Enable Or Disable Feature Gates</a> for more information.</p>

  </details>
  </div>


<!--
This page shows how to set Unix permission bits on an `emptyDir` volume directory
using the `mode` field.
-->
本页介绍如何使用 `mode` 字段在 `emptyDir` 卷目录上设置 Unix 权限位。

## 准备开始

<!--
You need to have a Kubernetes cluster, and the kubectl command-line tool must
be configured to communicate with your cluster. It is recommended to run this tutorial on a cluster with at least two nodes that are not acting as control plane hosts. If you do not already have a
cluster, you can create one by using
[minikube](https://minikube.sigs.k8s.io/docs/tutorials/multi_node/)
or you can use one of these Kubernetes playgrounds:
-->
<p>你必须拥有一个 Kubernetes 的集群，且必须配置 kubectl 命令行工具让其与你的集群通信。
建议运行本教程的集群至少有两个节点，且这两个节点不能作为控制平面主机。
如果你还没有集群，你可以通过 <a href="https://minikube.sigs.k8s.io/docs/tutorials/multi_node/">Minikube</a>
构建一个你自己的集群，或者你可以使用下面的 Kubernetes 练习环境之一：</p>
<!--
* [iximiuz Labs](https://labs.iximiuz.com/playgrounds?category=kubernetes&filter=all)
* [Killercoda](https://killercoda.com/playgrounds/scenario/kubernetes)
* [KodeKloud](https://kodekloud.com/public-playgrounds)
-->
<ul>
<li><a href="https://labs.iximiuz.com/playgrounds?category=kubernetes&filter=all">iximiuz Labs</a></li>
<li><a href="https://killercoda.com/playgrounds/scenario/kubernetes">Killercoda</a></li>
<li><a href="https://kodekloud.com/public-playgrounds">KodeKloud</a></li>
</ul>
 
 
 你的 Kubernetes 服务器版本必须是 v1.37.
  <p>要获知版本信息，请输入  <code>kubectl version</code>.</p>


<!--
You need to have the `EmptyDirVolumeMode`
[feature gate](/docs/reference/command-line-tools-reference/feature-gates/) enabled
on the API server **and** the kubelet.
-->
你需要在 API 服务器**和** kubelet 上启用 `EmptyDirVolumeMode`
[特性门控](/zh-cn/docs/reference/command-line-tools-reference/feature-gates/)。

<!-- steps -->

<!--
## Create a Pod that uses an emptyDir volume with custom permissions {#create-pod}
-->
## 创建使用带自定义权限 emptyDir 卷的 Pod {#create-pod}

<!--
The `emptyDir.mode` field lets you set Unix permission bits (from `0000` to `01777` in octal)
on the volume directory. If not specified, the directory is created with the default `0777`
permissions.
-->
`emptyDir.mode` 字段允许你在卷目录上设置 Unix 权限位
（八进制范围从 `0000` 到 `01777`）。如果未指定，目录将以默认的
`0777` 权限创建。

<!--
For example, to create a shared `/tmp` directory with the sticky bit set so that only file
owners can delete their own files:
-->
例如，要创建一个设置了粘滞位（sticky bit）的共享 `/tmp` 目录，
使得只有文件所有者可以删除自己的文件：


















<div class="highlight code-sample">
    <div class="copy-code-icon">
    <a href="https://raw.githubusercontent.com/kubernetes/website/main/content/zh-cn/examples/pods/emptydir-volume-mode.yaml" download="pods/emptydir-volume-mode.yaml"><code>pods/emptydir-volume-mode.yaml</code>
    </a><img src="/images/copycode.svg" class="icon-copycode" onclick="copyCode('pods-emptydir-volume-mode-yaml')" title="复制 pods/emptydir-volume-mode.yaml 到剪贴板"></img></div>
    <div class="includecode" id="pods-emptydir-volume-mode-yaml"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l">v1</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l">Pod</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">metadata</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">emptydir-mode-demo</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">spec</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">containers</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l">registry.k8s.io/busybox</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">test-container</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">command</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;sleep&#34;</span><span class="p">,</span><span class="w"> </span><span class="s2">&#34;3600&#34;</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">volumeMounts</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span>- <span class="nt">mountPath</span><span class="p">:</span><span class="w"> </span><span class="l">/tmp</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">tmp-volume</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">volumes</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">tmp-volume</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">emptyDir</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">mode</span><span class="p">:</span><span class="w"> </span><span class="m">01777</span><span class="w">
</span></span></span></code></pre></div></div>
</div>

<!--
1. Create the pod on your cluster:
-->
1.  在你的集群上创建 Pod：

    ```shell
    kubectl apply -f https://k8s.io/examples/pods/emptydir-volume-mode.yaml
    ```

<!--
1. Verify the pod is running:
-->
2.  验证 Pod 正在运行：

    ```shell
    kubectl get pod emptydir-mode-demo
    ```

<!--
1. Check the permissions on the mounted volume:
-->
3.  检查已挂载卷的权限：

    ```shell
    kubectl exec emptydir-mode-demo -- ls -ld /tmp
    ```

    <!--
   The output is similar to:
    -->
    输出类似于：

    ```none
    drwxrwxrwt 2 root root 4096 Jul 28 00:00 /tmp
    ```

    <!--
   The `t` at the end confirms the sticky bit is set.
    -->
    末尾的 `t` 确认粘滞位已设置。

<!--
1. Delete the Pod that you created for this exercise:
-->
4.  删除你为这个练习创建的 Pod：

    ```shell
    kubectl delete pod emptydir-mode-demo
    ```

## 接下来

<!--
- Learn more about [`emptyDir` volumes](/docs/concepts/storage/volumes/#emptydir)
-->
- 了解更多关于 [`emptyDir` 卷](/zh-cn/docs/concepts/storage/volumes/#emptydir)的信息
