source: chapter07/createfiles.xml@ 8dd179b

11.1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 arm bdubbs/gcc13 multilib renodr/libudev-from-systemd s6-init trunk xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since 8dd179b was 8dd179b, checked in by Bruce Dubbs <bdubbs@…>, 2 years ago

Fix typos in glibc and for systemd-oom group syntax

  • Property mode set to 100644
File size: 7.3 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../general.ent">
5 %general-entities;
6]>
7
8<sect1 id="ch-tools-createfiles">
9 <?dbhtml filename="createfiles.html"?>
10
11 <title>Creating Essential Files and Symlinks</title>
12
13 <indexterm zone="ch-tools-createfiles">
14 <primary sortas="e-/etc/passwd">/etc/passwd</primary>
15 </indexterm>
16
17 <indexterm zone="ch-tools-createfiles">
18 <primary sortas="e-/etc/group">/etc/group</primary>
19 </indexterm>
20
21 <indexterm zone="ch-tools-createfiles">
22 <primary sortas="e-/run/utmp">/run/utmp</primary>
23 </indexterm>
24
25 <indexterm zone="ch-tools-createfiles">
26 <primary sortas="e-/var/log/btmp">/var/log/btmp</primary>
27 </indexterm>
28
29 <indexterm zone="ch-tools-createfiles">
30 <primary sortas="e-/var/log/lastlog">/var/log/lastlog</primary>
31 </indexterm>
32
33 <indexterm zone="ch-tools-createfiles">
34 <primary sortas="e-/var/log/wtmp">/var/log/wtmp</primary>
35 </indexterm>
36
37 <para>Historically, Linux maintains a list of the mounted file systems in the
38 file <filename>/etc/mtab</filename>. Modern kernels maintain this list
39 internally and exposes it to the user via the <filename
40 class="directory">/proc</filename> filesystem. To satisfy utilities that
41 expect the presence of <filename>/etc/mtab</filename>, create the following
42 symbolic link:</para>
43
44<screen><userinput>ln -sv /proc/self/mounts /etc/mtab</userinput></screen>
45
46 <para>Create a basic <filename>/etc/hosts</filename> file to be
47 referenced in some test suites, and in one of Perl's configuration files
48 as well:</para>
49
50<screen><userinput>cat &gt; /etc/hosts &lt;&lt; EOF
51127.0.0.1 localhost $(hostname)
52::1 localhost
53EOF</userinput></screen>
54
55 <para>In order for user <systemitem class="username">root</systemitem> to be
56 able to login and for the name <quote>root</quote> to be recognized, there
57 must be relevant entries in the <filename>/etc/passwd</filename> and
58 <filename>/etc/group</filename> files.</para>
59
60 <para>Create the <filename>/etc/passwd</filename> file by running the following
61 command:</para>
62
63<screen revision="sysv"><userinput>cat &gt; /etc/passwd &lt;&lt; "EOF"
64<literal>root:x:0:0:root:/root:/bin/bash
65bin:x:1:1:bin:/dev/null:/usr/bin/false
66daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false
67messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false
68uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false
69nobody:x:99:99:Unprivileged User:/dev/null:/usr/bin/false</literal>
70EOF</userinput></screen>
71
72<screen revision="systemd"><userinput>cat &gt; /etc/passwd &lt;&lt; "EOF"
73<literal>root:x:0:0:root:/root:/bin/bash
74bin:x:1:1:bin:/dev/null:/usr/bin/false
75daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false
76messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false
77systemd-journal-gateway:x:73:73:systemd Journal Gateway:/:/usr/bin/false
78systemd-journal-remote:x:74:74:systemd Journal Remote:/:/usr/bin/false
79systemd-journal-upload:x:75:75:systemd Journal Upload:/:/usr/bin/false
80systemd-network:x:76:76:systemd Network Management:/:/usr/bin/false
81systemd-resolve:x:77:77:systemd Resolver:/:/usr/bin/false
82systemd-timesync:x:78:78:systemd Time Synchronization:/:/usr/bin/false
83systemd-coredump:x:79:79:systemd Core Dumper:/:/usr/bin/false
84uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false
85systemd-oom:x:81:81:systemd Out Of Memory Daemon:/:/usr/bin/false
86nobody:x:99:99:Unprivileged User:/dev/null:/usr/bin/false</literal>
87EOF</userinput></screen>
88
89 <para>The actual password for <systemitem class="username">root</systemitem>
90 will be set later.</para>
91
92 <para>Create the <filename>/etc/group</filename> file by running the following
93 command:</para>
94
95<screen revision="sysv"><userinput>cat &gt; /etc/group &lt;&lt; "EOF"
96<literal>root:x:0:
97bin:x:1:daemon
98sys:x:2:
99kmem:x:3:
100tape:x:4:
101tty:x:5:
102daemon:x:6:
103floppy:x:7:
104disk:x:8:
105lp:x:9:
106dialout:x:10:
107audio:x:11:
108video:x:12:
109utmp:x:13:
110usb:x:14:
111cdrom:x:15:
112adm:x:16:
113messagebus:x:18:
114input:x:24:
115mail:x:34:
116kvm:x:61:
117uuidd:x:80:
118wheel:x:97:
119nogroup:x:99:
120users:x:999:</literal>
121EOF</userinput></screen>
122
123<screen revision="systemd"><userinput>cat &gt; /etc/group &lt;&lt; "EOF"
124<literal>root:x:0:
125bin:x:1:daemon
126sys:x:2:
127kmem:x:3:
128tape:x:4:
129tty:x:5:
130daemon:x:6:
131floppy:x:7:
132disk:x:8:
133lp:x:9:
134dialout:x:10:
135audio:x:11:
136video:x:12:
137utmp:x:13:
138usb:x:14:
139cdrom:x:15:
140adm:x:16:
141messagebus:x:18:
142systemd-journal:x:23:
143input:x:24:
144mail:x:34:
145kvm:x:61:
146systemd-journal-gateway:x:73:
147systemd-journal-remote:x:74:
148systemd-journal-upload:x:75:
149systemd-network:x:76:
150systemd-resolve:x:77:
151systemd-timesync:x:78:
152systemd-coredump:x:79:
153uuidd:x:80:
154systemd-oom:x:81:
155wheel:x:97:
156nogroup:x:99:
157users:x:999:</literal>
158EOF</userinput></screen>
159
160 <para>The created groups are not part of any standard&mdash;they are groups
161 decided on in part by the requirements of the Udev configuration in Chapter
162 9, and in part by common convention employed by a number of existing Linux
163 distributions. In addition, some test suites rely on specific users or
164 groups. The Linux Standard Base (LSB, available at <ulink
165 url="http://refspecs.linuxfoundation.org/lsb.shtml"/>) only recommends that,
166 besides the group <systemitem class="groupname">root</systemitem> with a
167 Group ID (GID) of 0, a group <systemitem class="groupname">bin</systemitem>
168 with a GID of 1 be present. All other group names and GIDs can be chosen
169 freely by the system administrator since well-written programs do not depend
170 on GID numbers, but rather use the group's name.</para>
171
172 <para>Some tests in <xref linkend="chapter-building-system"/> need a regular
173 user. We add this user here and delete this account at the end of that
174 chapter.</para>
175
176<screen><userinput>echo "tester:x:101:101::/home/tester:/bin/bash" &gt;&gt; /etc/passwd
177echo "tester:x:101:" &gt;&gt; /etc/group
178install -o tester -d /home/tester</userinput></screen>
179
180 <para>To remove the <quote>I have no name!</quote> prompt, start a new
181 shell. Since the
182 <filename>/etc/passwd</filename> and <filename>/etc/group</filename>
183 files have been created, user name and group name resolution will now
184 work:</para>
185
186<screen role="nodump"><userinput>exec /usr/bin/bash --login</userinput></screen>
187
188 <para>The <command>login</command>, <command>agetty</command>, and
189 <command>init</command> programs (and others) use a number of log
190 files to record information such as who was logged into the system and
191 when. However, these programs will not write to the log files if they
192 do not already exist. Initialize the log files and give them
193 proper permissions:</para>
194
195<screen><userinput>touch /var/log/{btmp,lastlog,faillog,wtmp}
196chgrp -v utmp /var/log/lastlog
197chmod -v 664 /var/log/lastlog
198chmod -v 600 /var/log/btmp</userinput></screen>
199
200 <para>The <filename>/var/log/wtmp</filename> file records all logins and
201 logouts. The <filename>/var/log/lastlog</filename> file records when each
202 user last logged in. The <filename>/var/log/faillog</filename> file records
203 failed login attempts. The <filename>/var/log/btmp</filename> file records
204 the bad login attempts.</para>
205
206 <note><para>The <filename>/run/utmp</filename> file records the users that
207 are currently logged in. This file is created dynamically in the boot
208 scripts.</para></note>
209
210</sect1>
Note: See TracBrowser for help on using the repository browser.