现在我们在LFS分区中着手创建目录结构,用下列命令能创建一个大体上标准的目录树:
mkdir -p /{bin,boot,dev/pts,etc/opt,home,lib,mnt,proc} && mkdir -p /{root,sbin,tmp,usr/local,var,opt} && for dirname in /usr /usr/local do mkdir $dirname/{bin,etc,include,lib,sbin,share,src} ln -s share/{man,doc,info} $dirname mkdir $dirname/share/{dict,doc,info,locale,man} mkdir $dirname/share/{nls,misc,terminfo,zoneinfo} mkdir $dirname/share/man/man{1,2,3,4,5,6,7,8} done && mkdir /var/{lock,log,mail,run,spool} && mkdir -p /var/{tmp,opt,cache,lib/misc,local} && mkdir /opt/{bin,doc,include,info} && mkdir -p /opt/{lib,man/man{1,2,3,4,5,6,7,8}} && ln -s ../var/tmp /usr |
在缺省情况下创建的目录的访问权限为755,但有些目录的访问权限不能设置成这样。我们将做两个修改:一个是root的家目录,另一个是临时文件放置的目录。命令如下:
chmod 0750 /root && chmod 1777 /tmp /var/tmp |
第一个命令确保不是所有的用户可以进入/root 目录(其他用户主目录有同样的访问权限)。第二个修改是对$LFS目录下的所有tmp目录的访问权限设置为1777,以使所有用户可以写入数据到/tmp或/var/tmp目录,但是不能删除其他用户创建的文件,不能删除其他用户的目录是由sticky位,也就是1777的1来设定的)。
现在合适的目录结构已经创建好了,下面就需要拷贝第三章下载的源代码包到 /usr/src 的相应子目录下(你可以自己建立想要的子目录)。
我们的目录树是以FHS标准(可以在http://www.pathname.com/fhs/ 得到)。除了上面创建的目录外,FHS标准还规定了必须有 /usr/local/games 和 /usr/share/games 两个目录,但是作为一个基本的系统,我们并不需要这些。如果你要完全的遵守FHS标准的话,就自己建立这两个目录。至于 /usr/local/share 目录下的子目录,FHS标准规定得并不严格,所以我们就创建了(在我们看来)需要的子目录。