1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-system-creatingdirs">
<?dbhtml filename="creatingdirs.html"?>
<title>Creating Directories</title>
<para>It is time to create some structure in the LFS file system. Create a
standard directory tree by issuing the following commands:</para>
<screen><userinput>install -dv /{bin,boot,etc/opt,home,lib,mnt}
install -dv /{sbin,srv,usr/local,var,opt}
install -dv /root -m 0750
install -dv /tmp /var/tmp -m 1777
install -dv /media/{floppy,cdrom}
install -dv /usr/{bin,include,lib,sbin,share,src}
ln -sv share/{man,doc,info} /usr
install -dv /usr/share/{doc,info,locale,man}
install -dv /usr/share/{misc,terminfo,zoneinfo}
install -dv /usr/share/man/man{1..8}
install -dv /usr/local/{bin,etc,include,lib,sbin,share,src}
ln -sv share/{man,doc,info} /usr/local
install -dv /usr/local/share/{doc,info,locale,man}
install -dv /usr/local/share/{misc,terminfo,zoneinfo}
install -dv /usr/local/share/man/man{1,2,3,4,5,6,7,8}
install -dv /var/{lock,log,mail,run,spool}
install -dv /var/{opt,cache,lib/{misc,locate},local}
install -dv /opt/{bin,doc,include,info}
install -dv /opt/{lib,man/man{1,2,3,4,5,6,7,8}}</userinput></screen>
<para>Directories are, by default, created with permission mode 755, but
this is not desirable for all directories. In the commands above, two
changes are made—one to the home directory of user <systemitem
class="username">root</systemitem>, and another to the directories for
temporary files.</para>
<para>The first mode change ensures that not just anybody can enter
the <filename class="directory">/root</filename> directory—the
same as a normal user would do with his or her home directory. The
second mode change makes sure that any user can write to the
<filename class="directory">/tmp</filename> and <filename
class="directory">/var/tmp</filename> directories, but cannot remove
another user's files from them. The latter is prohibited by the so-called
<quote>sticky bit,</quote> the highest bit (1) in the 1777 bit mask.</para>
<note>
<para>Notice the two different constructions above for creating multiple
man directories: <command>install -d /usr/share/man/man{1..8}</command> and
<command>install -d /usr/local/share/man/man{1,2,3,4,5,6,7,8}</command>. The
first one is new since Bash 3.0. This new feature will help make repetitive
commands easier to type.</para>
</note>
<sect2>
<title>FHS Compliance Note</title>
<para>The directory tree is based on the Filesystem Hierarchy Standard
(FHS) (available at <ulink url="http://www.pathname.com/fhs/"/>). In
addition to the tree created above, this standard stipulates the existence
of <filename class="directory">/usr/local/games</filename> and <filename
class="directory">/usr/share/games</filename>. The FHS is not precise as to
the structure of the <filename class="directory">/usr/local/share</filename>
subdirectory, so we create only the directories that are needed. However,
feel free to create these directories if you prefer to conform more strictly
to the FHS.</para>
</sect2>
</sect1>
|