7.5. 创建目录

现在可以在 LFS 文件系统中创建完整的目录结构。

[注意]

注意

本节提到的一些目录已经在之前使用命令创建,或者在安装一些软件包时被创建。这里出于内容完整性的考虑,仍然给出它们。

首先,执行命令,创建一些位于根目录中的目录,它们不属于之前章节需要的有限目录结构:

mkdir -pv /{boot,home,mnt,opt,srv}

执行以下命令,为这些直接位于根目录中的目录创建次级目录结构:

mkdir -pv /etc/{opt,sysconfig}
mkdir -pv /lib/firmware
mkdir -pv /media/{floppy,cdrom}
mkdir -pv /usr/{,local/}{include,src}
mkdir -pv /usr/lib/locale
mkdir -pv /usr/local/{bin,lib,sbin}
mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo}
mkdir -pv /usr/{,local/}share/man/man{1..8}
mkdir -pv /var/{cache,local,log,mail,opt,spool}
mkdir -pv /var/lib/{color,misc,locate}

ln -sfv /run /var/run
ln -sfv /run/lock /var/lock

install -dv -m 0750 /root
install -dv -m 1777 /tmp /var/tmp

默认情况下,新创建的目录具有权限模式 755,但这并不适用于所有情况。在以上命令中,两个目录的访问权限被修改 —— 一个是 root 的主目录,另一个是包含临时文件的目录。

第一个修改能保证不是所有人都能进入 /root —— 一般用户也可以为他/她的主目录设置同样的 0750 权限模式。第二个修改保证任何用户都可写入 /tmp/var/tmp 目录,但不能从中删除其他用户的文件,因为所谓的 粘滞位 (sticky bit),即八进制权限模式 1777 的最高位 (1) 阻止这样做。

7.5.1. FHS 兼容性注记

这个目录树是基于 Filesystem Hierarchy Standard (FHS) (可以在 https://refspecs.linuxfoundation.org/fhs.shtml 查阅) 建立的。FHS 标准还规定了某些可选的目录,例如 /usr/local/games/usr/share/games。在 LFS 中,我们只创建必要的目录。不过,如果您需要的话可以自己创建这些可选目录。

[警告]

警告

FHS 不要求 /usr/lib64目录,而且 LFS 编辑团队决定不使用它。LFS 和 BLFS 中的一些命令只有在该目录不存在时才能正常工作。您应该经常检查并确认该目录不存在,因为往往容易无意地创建该目录,而它的存在可能破坏您的系统。