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