现在可以在 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/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) 阻止这样做。
这个目录树是基于 Filesystem Hierarchy Standard (FHS) (可以在 https://refspecs.linuxfoundation.org/fhs.shtml
查阅) 建立的。FHS 标准还规定了某些可选的目录,例如 /usr/local/games
和 /usr/share/games
。在 LFS
中,我们只创建必要的目录。不过,如果您需要的话可以自己创建这些可选目录。
FHS 不要求 /usr/lib64
目录,而且 LFS
编辑团队决定不使用它。LFS 和 BLFS
中的一些命令只有在该目录不存在时才能正常工作。您应该经常检查并确认该目录不存在,因为往往容易无意地创建该目录,而它的存在可能破坏您的系统。