现在我们在LFS分区中着手创建目录结构,用下列命令能创建一个大体上标准的目录树:
mkdir -p /{bin,boot,dev/{pts,shm},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/{doc,info,locale,man} mkdir $dirname/share/{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}} |
在缺省情况下创建的目录的访问权限为755,但有些目录的访问权限不能设置成这样。我们将做两个修改:一个是root的主目录,另一个是临时文件放置的目录。命令如下:
chmod 0750 /root chmod 1777 /tmp /var/tmp |
第一个命令确保不是所有的用户可以进入/root目录(其他用户主目录有同样的访问权限)。第二个修改是对$LFS目录下的所有tmp目录的访问权限设置为1777,以使所有用户可以写入数据到/tmp或/var/tmp目录,但是不能删除其他用户创建的文件,不能删除其他用户的目录是由sticky位,也就是1777的1来设定的)。
我们的目录树是以FHS标准(可以在http://www.pathname.com/fhs/得到)。除了上面创建的目录外,FHS标准还规定了必须有 /usr/local/games 和 /usr/share/games 两个目录,但是作为一个基本的系统,我们并不需要这些。如果你要完全的遵守FHS标准的话,就自己建立这两个目录。至于 /usr/local/share 目录下的子目录,FHS标准规定得并不严格,所以我们就创建了(在我们看来)需要的子目录。