6.5. 创建目录

现在我们将创建 LFS 文件系统中的某些结构。执行以下命令创建一个标准目录树:

mkdir -pv /{bin,boot,etc/{opt,sysconfig},home,lib,mnt,opt}
mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}
install -dv -m 0750 /root
install -dv -m 1777 /tmp /var/tmp
mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}
mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
mkdir -v  /usr/{,local/}share/{misc,terminfo,zoneinfo}
mkdir -v  /usr/libexec
mkdir -pv /usr/{,local/}share/man/man{1..8}

case $(uname -m) in
 x86_64) ln -sv lib /lib64     && 
         ln -sv lib /usr/lib64 && 
         ln -sv lib /usr/local/lib64 ;;
esac

mkdir -v /var/{log,mail,spool}
ln -sv /run /var/run
ln -sv /run/lock /var/lock
mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}

默认地,目录创建时的权限模式为 755,但是并不是所有的目录都应该如此。在以上目录中,我们进行了两项改动——一次是对于 root 用户的主目录,另一此是对用于临时文件的目录。

第一次模式修改确保并不是所有人都能进入 /root 目录——和一个普通用户保护其主目录的方式相同。第二此模式修改确保所有人都可以写入 /tmp/var/tmp 两个目录,但是无法从中移除其他用户的文件。后者被所谓粘性位,1777 位掩码中的最高位实现。

6.5.1. FHS 兼容注记

目录树基于文件系统层级标准 (FHS) (位于 http://www.pathname.com/fhs/)。在 FHS 之外我们还给 mandocinfo 目录创建了兼容性符号链接,因为很多软件包依然试图将文档安装到 /usr/<dir>/usr/local/<dir> 中而不是 /usr/share/<dir>/usr/local/share/<dir> 中。FHS 还要求 /usr/local/games/usr/share/games 存在。FHS 对于 /usr/local/share 子目录的要求并不严格,所以我们之创建了需要的目录。不过,如果要严格遵守 FHS 标准,亦可创建之。