4.3 系统目录结构

FreeBSD 遵循 hier(7) 规范组织文件系统层次结构。系统启动时首先挂载根目录 /,其包含进入多用户模式所需的基本系统。本节逐级解释根目录下各子目录的功能与设计原则。

目录结构概览

根目录(/)是文件系统的顶层目录,系统启动时首先挂载,包含操作系统进入多用户模式所需的基本系统。根目录还包含其他文件系统的挂载点。挂载点是附加文件系统可以挂载到父文件系统(通常是根文件系统)上的目录。标准挂载点包括 /usr//var//tmp//mnt//media/

FreeBSD 目录结构的设计原则

FreeBSD 的目录结构设计遵循以下原则:

  • 单一根目录原则:与 Windows 等系统采用多根(多盘符)的设计不同,UNIX 系统采用单一根目录(/)作为整个文件系统的起点。所有存储设备、分区和网络文件系统均以挂载的方式接入统一的目录树中。

  • 功能分离原则:将不同功能的文件分配到不同的目录中,各文件系统可独立管理、挂载和备份。例如,将系统二进制文件(/bin/sbin)与用户应用程序(/usr/local)分离,将配置文件(/etc)与日志数据(/var/log)分离。/var 包含日志目录、假脱机目录和临时文件,可能被填满,因此应与 / 分离。

  • 基本系统与第三方软件分离原则:FreeBSD 将基本系统与第三方软件严格分离。基本系统组件安装在 /bin/sbin/usr/bin/usr/sbin/usr/lib 等目录中,通过 Ports 或 pkg 安装的第三方软件统一安装到 /usr/local/ 下的对应子目录中(如 /usr/local/bin/usr/local/lib/usr/local/etc)。

  • 静态与动态数据分离原则:静态数据(如二进制文件、库文件、文档)与动态数据(如日志、临时文件、运行时数据)分别存储在不同的目录树中。/usr 主要存放静态的只读数据,/var 则存放可变的运行时数据,/tmp 存放临时文件。

FreeBSD 目录结构

为便于说明,仅列出前三级目录及重要文件。

/
├── COPYRIGHT FreeBSD 版权信息文件
├── bin 基本的 BSD 用户工具,参见 intro(1)
├── boot 操作系统引导过程中使用的程序和配置文件,参见 boot(8)
   ├── defaults 存放默认引导配置文件,参见 loader.conf(5)
      └── loader.conf 引导加载程序配置文件,参见 loader.conf(5)
   ├── device.hints 用于控制驱动程序的内核变量,参见 device.hints(5)
   ├── dtb 编译的扁平化设备树(FDT)文件,参见 fdt(4)  dtc(1);x86 架构下应为空
      └── overlays 编译的 FDT 覆盖层,参见 loader.conf(5) 中的 fdt_overlays
   ├── efi EFI 系统分区(ESP)挂载点,参见 uefi(8)
   ├── firmware 可加载的二进制固件内核模块;pkg kmod 会安装至此,以及通过 fwget 下载的固件
   ├── fonts 二进制位图控制台字体,参见 loader.conf(5)  vtfontcvt(8)
   ├── images beastie 启动菜单图像,参见 loader_lua(8)
   ├── kernel 内核及内核模块,参见 kldstat(8)
   ├── kernel.old 备用内核及内核模块
   ├── loader.conf loader 配置文件,参见 loader.conf(5)
   ├── loader.conf.d loader 补充配置目录,参见 loader.conf(5)
   ├── lua 引导加载程序的 Lua 脚本,包含启动时显示的 ASCII 艺术字(图)等,参见 loader_lua(8)
   ├── modules 第三方可加载内核模块,如通过 pkg(8)  ports(7) 安装的模块
   ├── uboot 空目录
   └── zfs 存放 ZFS 存储池(Zpool)的缓存文件,参见 zpool(8)
       └── zpool.cache 硬编码的磁盘驱动器路径,参见 zpool(8)
├── compat 支持与其他操作系统二进制兼容的文件
   └── linux Linux 兼容层运行时的默认位置,参见 linux(4)
├── dev 设备文件和特殊文件,参见 intro(4)  devfs(4)
   ├── ada0 第一块 ATA 存储设备
   ├── ada0p1 第一块 ATA 存储设备的第一个分区
   ├── cd0 第一块光盘驱动器
   ├── cuaU0 第一个 USB 串口,参见 cu(1)
   ├── da0 第一块 SCSI 存储设备
   ├── da0s1 第一块 SCSI 存储设备的第一个分区
   ├── dri 显卡字符设备节点,参见 drm(7)
   ├── drm 显卡特殊文件节点,参见 drm(7)
   ├── fd 文件描述符文件,参见 fd(4);目录下 0、1、2 对应标准输入、标准输出和标准错误
   ├── fd0 第一块软盘驱动器
   ├── gpt  GPT 标签划分的存储分区,参见 gpt(8)
   ├── input 存放输入设备相关的设备文件
   ├── iso9660 ISO 9660 文件系统的设备节点,如光盘
   ├── mmcsd0 第一张 SD 存储卡
   ├── mmcsd0s1 第一张 SD 存储卡的第一个分区
   ├── nda0 第一块 NVMe 存储设备(通过 cam(3) 连接)
   ├── nda0p1 第一块 NVMe 存储设备的第一个分区
   ├── null 空设备,丢弃所有写入的数据,读取时立即返回 EOF
   ├── nvd0 第一块 NVMe 存储设备(使用 NVMe 命名空间)
   ├── pts 伪终端设备,参见 pts(4)
   ├── random 熵设备,加密强度的随机数来源,参见 random(4)
   ├── reroot reboot -r 使用的重引导设备
   ├── sa0 第一块磁带驱动器
   ├── usb USB 总线
   ├── vmm 活跃的 bhyve(8) 虚拟机
   └── zvol ZFS 卷,参见 zfs(8)
├── entropy 为随机数生成器提供初始状态,参见 save-entropy(8)
├── etc 基本系统配置文件和脚本,参见 intro(5)
   ├── auto_master autofs 配置文件,参见 automount(8)
   ├── autofs 存放自动挂载相关的配置文件,参见 autofs(4)
   ├── bluetooth 蓝牙相关配置文件
   ├── cron.d 存放系统级的定时任务配置文件,参见 crontab(5)
   ├── crontab root 用户的 crontab 文件
   ├── defaults 存放了一组默认配置文件,如 rc.conf、periodic.conf,参见 rc(8)
   ├── devd 存放设备管理器(devd)的配置文件,如监控蓝牙、鼠标插拔,参见 devd(8)
   ├── devfs.conf 启动时 devfs 设备规则配置,参见 devfs.conf(5)
   ├── dma DMA 邮件代理相关,参见 dma(8)
   ├── freebsd-update.conf 基本系统更新工具 freebsd-update 的配置文件,参见 freebsd-update(8)
   ├── fstab 文件分区表,参见 fstab(5)
   ├── gss GSSAPI 相关文件、含 Kerberos 5
   ├── hosts hosts 文件,优先于 DNS 的本地 IP 域名映射表
   ├── inetd.conf 配置 BSD inetd,参见 inetd(8)
   ├── jail.conf.d 用于 jail 配置的模块化管理,默认为空(jail.conf(5)
   ├── kyua Kyua 测试框架的全局配置文件(kyua(1)、kyua.conf(5)
   ├── localtime 本地时区文件,参见 ctime(3)。在测试系统中,localtime 链接至 /usr/share/zoneinfo/Asia/Shanghai
   ├── login.conf 登录类功能数据库,参见 login.conf(5)
   ├── machine-id 系统的 UUID,供 D-Bus 使用
   ├── mail Sendmail 相关文件,参见 sendmail(8)
      ├── aliases 用于投递系统邮件的地址
      └── mailer.conf mailwrapper(8) 配置文件
   ├── motd.template TTY 登录后显示的信息,参见 motd(5)
   ├── mtree 系统初始化与验证,可用于系统审计,参见 mtree(8)
   ├── newsyslog.conf.d newsyslog 的配置文件,参见 newsyslog.conf(5)
   ├── ntp NTP 相关,参见 ntp.conf(5)、ntpd(8)
   ├── ntp.conf NTP 客户端配置文件,参见 ntpd(8)
   ├── pam.d 可插拔认证模块(PAM)相关的配置文件,参见 pam(3)
   ├── periodic 存放定期执行的维护脚本,由 cron 调用,参见 periodic(8)
   ├── pf.conf PF 防火墙配置文件,参见 pf(4)
   ├── pkg PKG 相关配置文件,参见 pkg(8)
   ├── ppp PPP 相关配置,参见 ppp(8)
   ├── profile.d 存放用户登录时可执行的 shell 脚本,不会自动加载
   ├── rc.conf 系统启动配置文件,参见 rc.conf(5)
   ├── rc.conf.d 存放特定服务的配置文件,默认为空
   ├── rc.d 用于启动和管理系统服务的 RC 脚本,参见 rc(8)
   ├── resolv.conf DNS 解析配置文件,参见 resolv.conf(5)
   ├── resolvconf.conf DNS 配置管理器配置,通常由 local-unbound 生成,参见 local-unbound(8)  resolvconf(8)
   ├── security OpenBSM 审计配置文件,参见 audit(8)
   ├── ssh SSH  SSHD 相关配置文件,参见 ssh(1)
   ├── ssl SSL/TLS 证书、密钥等
      ├── cert.pem 系统信任库的捆绑形式,参见 certctl(8)
      ├── certs 系统信任库的 OpenSSL 哈希目录形式,参见 certctl(8)
      ├── openssl.cnf OpenSSL 配置文件,参见 openssl.cnf(5)
      └── untrusted 明确不信任的证书,参见 certctl(8)
   ├── sysctl.conf 内核状态默认值,参见 sysctl.conf(5)
   ├── sysctl.kld.d 特定内核模块的配置文件,默认为空,参见:D40886[EB/OL]. [2026-03-26]. <https://reviews.freebsd.org/D40886>.
   ├── syslog.conf 系统日志配置文件
   ├── syslog.d syslogd 的配置文件,参见 syslogd(8)
   ├── ttys 创建 TTY 的规则文件,参见 getty(8)
   ├── unbound Unbound 配置文件
   ├── wpa_supplicant.conf 连接 WiFi 的配置文件,参见 wpa_supplicant.conf(5)
   ├── X11 X11 相关,如 XRDP
   └── zfs ZFS 相关配置文件,参见 zfs(8)
├── home 普通用户家目录;典型用户 beastie 的家目录为 /home/beastie/
   └── ykla 普通用户 ykla 的家目录
├── lib /bin、/sbin 所需的关键库文件
   ├── geom GEOM 库,参见 geom(8)
   └── nvmecontrol NVMe 相关工具,参见 nvmecontrol(8)
├── libexec 系统辅助程序,供 /bin、/sbin 中的二进制文件调用
   └── resolvconf 管理 DNS 解析配置的程序,参见 resolvconf.conf(5)
├── media 媒体文件挂载点,如 U 盘、光盘;参见 automount(8),或使用桌面环境时参见 bsdisks(8)
├── mnt 用作临时挂载点的空目录
├── net NFS 共享挂载点,参见 auto_master(5)
├── nonexistent 不存在的目录;按照惯例,作为不需要家目录的用户账户的家目录;参见 /var/empty/。守护进程账户(如 www、nobody、bind)的家目录通常设为此路径,表示这些账户不需要可写的家目录
├── proc 现代 FreeBSD 默认不使用 procfs,该目录通常为空;参见 procfs(4)
├── rescue 静态链接的系统工具,紧急模式时使用,参见 rescue(8)
├── root root 的家目录
├── sbin 基本的 BSD 系统管理工具,参见 intro(8)
├── tmp 通常在系统重启后仍会保留的临时文件;参见 rc.conf(5) 中的 clear_tmp_enable
├── usr 包含大多数用户实用程序和应用程序
   ├── bin 用户实用程序、编程工具和应用程序,参见 intro(1)
   ├── freebsd-dist 发行文件(如 base.txz),参见 release(7)  bsdinstall(8)
   ├── include 标准 C 头文件
   ├── lib 共享库和 ar(1) 类型库,参见 intro(3)
      ├── clang 系统编译程序 clang(1) 的共享库
      ├── compat 兼容性共享库
      ├── debug 内核和基本系统库及二进制文件的独立调试数据
      ├── dtrace dtrace(1) 库脚本
      ├── engines OpenSSL(加密/SSL 工具包)动态可加载引擎
      ├── flua FreeBSD Lua 共享库
      └── i18n 国际化共享库
   ├── lib32 32 位兼容库
   ├── libdata 杂项实用数据文件
      ├── ldscripts 链接器脚本,参见 ld(1)
      └── pkgconfig 编译程序和链接器标志集合,用于 pkgconf(1) 开发工具
   ├── libexec 由程序执行的系统守护进程和实用程序
      ├── bsdconfig ncurses FreeBSD 配置向导调用的实用程序
      ├── bsdinstall bsdinstall(8) 的实用程序
      ├── dwatch dwatch(1) 的配置文件
      ├── fwget fwget(8) 调用的实用程序
      ├── hyperv  Hyper-V 虚拟机管理程序通信的脚本
      ├── lpr 行式打印机系统的实用程序和过滤器,参见 lpr(1)
      ├── sendmail sendmail(8) 二进制文件,参见 mailwrapper(8)
      ├── sm.bin sendmail(8) 的受限 shell,参见 smrsh(8)
      └── zfs Z 文件系统实用程序
   ├── local 本地可执行文件、库等,由 pkg(7)  ports(7) 安装
      ├── bin 本地用户实用程序,参见 intro(1)
      ├── etc 本地程序配置文件
      ├── include 本地库头文件
      ├── lib 本地库文件
      ├── lib32 本地 32 位兼容库
      ├── libdata 本地实用数据文件
      ├── libexec 本地实用程序调用的实用程序
      ├── sbin 本地管理实用程序
      ├── share 本地架构无关文件
      ├── share/doc 本地文档
      ├── share/doc/freebsd/ FreeBSD 项目的文章、书籍、FAQ 和手册
      └── share/man 本地手册页,参见 man(1)
   ├── obj 架构特定的目标树,用于从源代码构建 FreeBSD,参见 build(7)
   ├── ports FreeBSD Ports,参见 ports(7)
      └── distfiles 下载的源代码包的存放位置
   ├── sbin 系统守护进程和面向用户执行的管理实用程序,参见 intro(8)
   ├── share 架构无关文件
      ├── atf 自动化测试框架脚本,参见 ATF(7)
      ├── bhyve bhyve(8) 键盘映射
      ├── calendar 系统级日历文件,参见 calendar(1)
      ├── certs openssl(1)  TLS 证书
      ├── dict 词表,参见 look(1)
         ├── freebsd FreeBSD 特有的术语、专有名词和行话
         └── web2 韦氏第二版国际词典的词汇
      ├── doc 杂项文档
      ├── dtrace 动态跟踪编译程序脚本,参见 dtrace(1)
      ├── examples 用户和程序员的各种示例
      ├── firmware 用户态程序加载的固件镜像
      ├── games BSD 传统游戏使用的 ASCII 文本文件,参见 intro(6)
      ├── keys 已知可信和已撤销的密钥
         └── pkg pkg(7)  pkg(8) 的指纹
      ├── locale 本地化文件,参见 setlocale(3)
      ├── man 系统手册页,参见 man(1)
      ├── misc 杂项系统级文件
         ├── ascii ASCII 码表
         ├── flowers 花语含义
         ├── magic file(1) 使用的魔术数字
         └── termcap 终端特性数据库,参见 termcap(5)
      ├── mk make 模板,参见 make(1)
      ├── nls 国家语言支持文件
      ├── security 安全策略数据文件,如 mac_lomac(4)
      ├── sendmail sendmail(8) 配置文件
      ├── skel 新账户的示例点文件
      ├── snmp SNMP 守护进程的 MIB、示例文件和树定义
         ├── defs 用于 gensnmptree(1) 的树定义文件
         └── mibs 管理信息库(MIB)文件
      ├── syscons syscons(4) 文件
         ├── fonts 控制台字体,参见 vidcontrol(1)  vidfont(1)
         ├── keymaps 控制台键盘映射,参见 kbdcontrol(1)  kbdmap(1)
         └── scrnmaps 控制台屏幕映射
      ├── sysroot -sysroot 编译程序/链接器参数构建非本机二进制文件所需的文件
         └── VERSION FreeBSD 发行版 VERSION 的文件;"VERSION" 匹配 uname(1) -r
             └── MACHINE.MACHINE_ARCH 表示这些文件的二进制 ABI;"MACHINE" 匹配 uname(1) -m;"MACHINE_ARCH" 匹配 uname(1) -p
      ├── tabset 各种终端的制表符描述文件,用于 termcap 文件,参见 termcap(5)
      ├── vi vi(1) 编辑器的本地化支持和实用程序
      ├── vt 系统控制台使用的文件,参见 vt(4)
         ├── fonts 控制台字体,参见 vidcontrol(1)、vidfont(1)  vtfontcvt(8)
         └── keymaps 控制台键盘映射,参见 kbdcontrol(1)  kbdmap(1)
      └── zoneinfo 时区配置信息,参见 tzfile(5)
   ├── src FreeBSD 源代码,参见 development(7);源代码树的布局由顶层 README.md 文件描述
   └── tests FreeBSD 测试套件,参见 tests(7)
├── var 多种用途的日志、临时、瞬态、缓存文件
   ├── account 默认为空,系统审计用,参见 accton(8)
      └── acct 执行审计文件,参见 acct(5)
   ├── at 存放 at 命令调度的任务文件,参见 at(1)
      ├── jobs 作业文件
      └── spool 输出假脱机文件
   ├── audit 存储安全审计日志文件,属于 audit 组,参见 audit(8)
   ├── authpf 用于认证网关用户的 shell,参见 authpf(8),默认为空
   ├── backups 用于存放系统的备份文件,如用户名和密钥、pkg 数据库。由 /etc/periodic/daily 下的 200、210 等文件生成
   ├── cache 缓存文件
      ├── cups CUPS 的缓存打印机,参见 cups(1)
      └── pkg pkg(8) 的缓存包
   ├── crash 存放崩溃转储文件,参见 crash(8)  savecore(8)
   ├── cron 存放 cron 定时任务相关文件,参见 cron(8)
      └── tabs crontab 文件,参见 crontab(5)
   ├── db 自动生成的系统特定数据库文件
      ├── etcupdate etcupdate(8) 的临时文件和日志
      ├── freebsd-update freebsd-update(8) 的下载和临时文件
      └── pkg 包数据库
   ├── empty 默认为空,旨在提供一个始终保持为空的目录供特定程序使用①
   ├── games 存放与游戏相关的数据文件,默认为空
   ├── heimdal Kerberos 5 用,默认为空,参见 kdc(8)
   ├── lib 移植的 Linux 应用程序的状态信息
   ├── log 各种系统日志文件
      ├── Xorg.0.log X 服务器日志(若安装 X(7)),轮替为 Xorg.0.log.old
      ├── aculog 串行线路访问日志,参见 cu(1)
      ├── auth.log 系统认证日志
      ├── bsdinstall_log 系统安装日志
      ├── cron 定时任务日志,参见 cron(8)
      ├── cups CUPS 日志,参见 cups(1)
      ├── daemon.log 系统守护进程的默认日志
      ├── debug.log 未丢弃的调试 syslog 消息
      ├── devd.log 设备状态变更守护进程的默认日志
      ├── dmesg.today 系统消息缓冲区日志,轮替为 dmesg.yesterday
      ├── lpd-errs 行式打印机假脱机守护进程日志,参见 lpd(8)
      ├── maillog sendmail(8) 日志,轮替并压缩为 maillog.0.bz2
      ├── messages 通用系统日志,参见 syslogd(8)
      ├── mount.today 当前加载的 fstab(5),轮替为 mount.yesterday
      ├── pf.today 包过滤防火墙日志,参见 pf(4)
      ├── pflog pflogd(8) 捕获的已保存数据包
      ├── ppp.log 参见 ppp(8)
      ├── security 安全事件日志
      ├── setuid.today 以提升权限运行的可执行文件列表,轮替为 setuid.yesterday
      ├── userlog 用户或组变更日志
      ├── utx.lastlogin 最后登录日志,参见 getutxent(3)
      └── utx.log 登录/注销日志,参见 getutxent(3)
   ├── mail 系统邮件,用户邮箱文件
   ├── msgs 用于存放系统消息文件,参见 msgs(1)
   ├── preserve 用于存放编辑器(如 vi)在异常关闭后保存的文件,已不再使用,默认为空
   ├── quotas UFS 配额信息文件
   ├── run 用来存放 PID 文件和运行时数据,包含自系统启动以来的操作系统信息
      ├── bhyve bhyve(8) 虚拟机的 unix(4) 域套接字
      ├── ppp 可由 "network" 组写入的命令连接套接字,参见 ppp(8)
      ├── utx.active 当前用户数据库,参见 getutxent(3)
      └── wpa_supplicant IEEE 802.11 WiFi 运行时文件
   ├── rwho 存储由 rwhod 收集的网络中其他计算机的用户登录信息,参见 rwhod(8)。默认为空
   ├── spool 存放等待处理的任务文件,如待打印机打印的文件
      ├── clientmqueue 未投递的提交邮件队列,参见 sendmail(8)
      ├── cups CUPS 的打印作业和临时文件,参见 cups(1)
      ├── dma DragonFly 邮件代理的未投递邮件队列,参见 dma(8)
      ├── lock 串行设备锁,参见 uucplock(3)
      ├── lpd 行式打印机假脱机守护进程的假脱机
      ├── mqueue sendmail(8) 的未投递邮件队列
      └── output 行式打印机假脱机目录
   ├── tmp 通常会在系统重启后保留的临时文件
      └── vi.recover vi(1) 编辑器的恢复文件
   ├── unbound Unbound 服务器的相关文件和配置,参见 unbound(8)
   └── yp NIS 的配置等文件,参见 yp(8)
└── zroot  ZFS 在创建存储池 "zroot" 时自动生成的挂载点目录;zroot  FreeBSD 安装程序默认的根池名称(参见 zpool(8)  zfs(8)  mountpoint 属性)。该目录自身通常为空,其子文件系统(如 zroot/ROOT、zroot/usr、zroot/var 等)分别挂载到对应路径;仅当直接在 zpool 根数据集下创建文件时,内容才会出现在此目录中

①:目录 /var/empty 设置了 schg 标志,即系统不可变标志。

参数解释:在长格式(-l)输出中包含文件标志(-o),且将目录视为普通文件列出而不递归(-d)。

技巧

OpenSSH 使用特权分离(privilege separation)架构,预认证阶段的 chroot 目录为 /var/empty,该目录必须为空且仅 root 可写。

设备与设备节点

设备是系统中与硬件活动相关的主要概念,包括磁盘、打印机、显卡和键盘。

每个设备都有一个设备名称和编号。例如,ada0 是第一块 SATA 硬盘,而 kbd0 代表键盘。

FreeBSD 中的大多数设备通过称为设备节点的特殊文件访问,这些文件位于 /dev 目录中。

在 FreeBSD 中,设备节点由 devfs(5) 文件系统自动管理。devfs 是一个虚拟文件系统,在系统启动时由内核自动挂载到 /dev,并根据当前系统中存在的硬件设备动态创建和删除设备节点。这与传统 UNIX 系统需要手动使用 mknod 命令创建设备节点的做法不同。devfs 确保了 /dev 目录中只包含当前系统实际存在的设备节点。

传统 UNIX 中,设备节点分为字符设备(character device)和块设备(block device)两种类型。字符设备以字节流方式访问数据,如终端(/dev/ttyv0)和串口;块设备以固定大小的块为单位访问数据,通过操作系统的缓冲缓存访问。然而,在现代 FreeBSD 中,块设备已移除,所有设备节点均为字符设备。

ls -l /dev/ 的输出中,所有设备均显示为 c(字符设备),不会出现 b(块设备)标识。

例如,磁盘 /dev/ada0 在现代 FreeBSD 上是字符设备,而非块设备。

设备命名遵循一定的约定:SATA 硬盘以 ada 开头(如 ada0ada1),SCSI 硬盘和 USB 存储设备以 da 开头(如 da0),NVMe 存储以 nda(通过 CAM 框架,默认)或 nvd(非 CAM)开头,CD-ROM 驱动器以 cd 开头。编号从 0 开始。GPT 分区在设备名后附加 p 加分区号(如 ada0p1),MBR 切片附加 s 加切片号(如 ada0s1)。

如下所示:

启动消息 dmesg

FreeBSD 启动时,大多数启动消息都与正在检测的设备有关。启动消息的副本保存在 /var/run/dmesg.boot 中。

以下示例是 Radxa X4 16G 128G eMMC 款在 15.0-CURRENT 下完整的启动消息内容。

参考文献

课后习题

  1. 查阅 FreeBSD 源代码中 hier(7) 的定义,分析其目录结构设计所遵循的层次化原则。

  2. 修改 /tmp 目录的默认权限配置(如将权限从 1777 改为 1755),记录修改后对临时文件创建和系统服务运行的影响。

最后更新于