6.5. 创建系统目录结构

现在我们在 LFS 分区中创建目录树结构,用下列命令能创建一个标准的目录树:



mkdir -pv /{bin,boot,etc/opt,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/{doc,info,locale,man}


mkdir -v  /usr/{,local/}share/{misc,terminfo,zoneinfo}


mkdir -pv /usr/{,local/}share/man/man{1..8}


for dir in /usr /usr/local; do


  ln -sv share/{man,doc,info} $dir


done


mkdir -v /var/{lock,log,mail,run,spool}


mkdir -pv /var/{opt,cache,lib/{misc,locate},local}


缺省的目录的权限模式为 755,但也并非所有的目录都是如此。以上的命令有两处有所不一样:一个是 root 用户的目录,另外两个是临时文件目录。

设置第一个权限模式是保证不是任何人都能够进入到 /root 目录中。这个模式也适用于让其它的普通用户可以工作在自己的目录中。设置第二个权限模式是确保所有用户都可以写入数据到 /tmp/var/tmp 目录,但不能从中删除其它用户的文件。这是由 “sticky位”,也就是 "1777" 中的最高位 "1" 来设定的。

6.5.1. FHS 兼容性说明

我们的目录树是按照 FHS(Filesystem Hierarchy Standard)标准(http://www.pathname.com/fhs/)。除了 FHS 外,我们还为 mandocinfo 目录建立了兼容性符号链接,以便于让这些软件包的文档装在 /usr/<directory>/usr/local/<directory> 而不是 /usr/share/<directory>/usr/local/share/<directory>。除了上面创建的目录外,LFS 标准还规定了必须有 /usr/local/games/usr/share/games 两个目录,但是作为一个基本系统,我们并不需要这些。如果你要完全的遵守 FHS 标准的话,就自己建立这两个目录。至于 /usr/local/share 目录下的子目录,FHS 标准规定得并不严格,所以我们就创建了(在我们看来)需要的子目录。


Host by Unixetc