mkdir -z 可创建目录并自动设置默认 selinux 安全上下文,但需系统启用 selinux(getenforce 返回 enforcing/permissive)且具备相应权限;-z 默认按路径策略分配类型(如 /var/www/html 下为 httpd_sys_content_t),指定自定义上下文需用 --context=ctx 或 mkdir -z ctx,创建后可用 ls -z 验证。

直接用 mkdir -Z 就能创建目录并自动设置默认 SELinux 安全上下文,但前提是系统已启用 SELinux 且你有相应权限。
确认 SELinux 是否启用
执行以下命令检查状态:
- getenforce —— 返回 Enforcing 或 Permissive 表示已启用;返回 Disabled 则 -Z 无效
- sestatus —— 查看完整 SELinux 配置,包括策略类型(如 targeted)和当前模式
使用 -Z 创建带默认上下文的目录
不指定具体类型时,-Z 会按当前路径的默认策略自动分配上下文。例如:
-
sudo mkdir -Z /var/www/html/testsite —— 在 Web 目录下创建子目录,自动继承
httpd_sys_content_t类型 -
sudo mkdir -Z /home/user/private —— 通常设为
user_home_t或user_home_dir_t
注意:普通用户一般无法在系统路径(如 /var、/etc)下创建目录,需加 sudo;且 -Z 操作通常需要 root 权限才能生效。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
指定自定义 SELinux 上下文
用 --context(或简写 -Z 后接类型)可强制设定上下文:
- sudo mkdir --context=system_u:object_r:httpd_sys_content_t:s0 /var/www/html/static
- sudo mkdir -Z system_u:object_r:svirt_sandbox_file_t:s0 /mnt/container-data
上下文格式为:USER:ROLE:TYPE:LEVEL,其中 TYPE 最关键。常见类型可通过 seinfo -t | grep httpd 等命令查询。
验证是否设置成功
创建后立即用 ls -Z 查看上下文:
-
ls -Z /var/www/html/testsite —— 输出类似
system_u:object_r:httpd_sys_content_t:s0 testsite - 若显示
?或字段为空,说明 SELinux 未启用,或上下文未正确写入










