diff options
author | Jeremy Huntwork <jhuntwork@linuxfromscratch.org> | 2006-04-08 18:31:59 +0000 |
---|---|---|
committer | Jeremy Huntwork <jhuntwork@linuxfromscratch.org> | 2006-04-08 18:31:59 +0000 |
commit | b340d68c5d19de852a6694cb6d5534dffd14ac54 (patch) | |
tree | c68c1daec2f9354bd20d5e27f482cb4a26bce033 | |
parent | 8eef13596cc3a7487b858dbabd672618a521e409 (diff) |
Added a command to create an empty /etc/mtab file early in chapter 6. This
avoids testsuite failures in e2fsprogs and possibly other programs that
expect /etc/mtab to be present. Explanation from Dan Nicholson, slightly
modified.
Also merged the 'Creating Essential Symlinks' section with 'Creating passwd,
group and log Files'.
git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/udev_update/BOOK@7494 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
-rw-r--r-- | chapter01/changelog.xml | 13 | ||||
-rw-r--r-- | chapter06/chapter06.xml | 1 | ||||
-rw-r--r-- | chapter06/createfiles.xml | 116 | ||||
-rw-r--r-- | general.ent | 4 |
4 files changed, 130 insertions, 4 deletions
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 23d9098db..b0c18e1a7 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -37,6 +37,19 @@ --> <listitem> + <para>April 8, 2006</para> + <itemizedlist> + <listitem> + <para>[jhuntwork] - Added a command to create an empty /etc/mtab file early + in chapter 6. This avoids testsuite failures in e2fsprogs and possibly other + programs that expect /etc/mtab to be present. Explanation from Dan Nicholson, + slightly modified. Also merged the 'Creating Essential Symlinks' section with + 'Creating passwd, group and log Files'.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> <para>April 6, 2006</para> <itemizedlist> <listitem> diff --git a/chapter06/chapter06.xml b/chapter06/chapter06.xml index 5e85e6cb4..5715d6be9 100644 --- a/chapter06/chapter06.xml +++ b/chapter06/chapter06.xml @@ -17,7 +17,6 @@ <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="chroot.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="creatingdirs.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="createfiles.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="pwdgroup.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="linux-libc-headers.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="man-pages.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="glibc.xml"/> diff --git a/chapter06/createfiles.xml b/chapter06/createfiles.xml index ae22a241d..0cfc7596f 100644 --- a/chapter06/createfiles.xml +++ b/chapter06/createfiles.xml @@ -8,7 +8,31 @@ <sect1 id="ch-system-createfiles"> <?dbhtml filename="createfiles.html"?> - <title>Creating Essential Symlinks</title> + <title>Creating Essential Files and Symlinks</title> + + <indexterm zone="ch-system-createfiles"> + <primary sortas="e-/etc/passwd">/etc/passwd</primary> + </indexterm> + + <indexterm zone="ch-system-createfiles"> + <primary sortas="e-/etc/group">/etc/group</primary> + </indexterm> + + <indexterm zone="ch-system-createfiles"> + <primary sortas="e-/var/run/utmp">/var/run/utmp</primary> + </indexterm> + + <indexterm zone="ch-system-createfiles"> + <primary sortas="e-/var/log/btmp">/var/log/btmp</primary> + </indexterm> + + <indexterm zone="ch-system-createfiles"> + <primary sortas="e-/var/log/lastlog">/var/log/lastlog</primary> + </indexterm> + + <indexterm zone="ch-system-createfiles"> + <primary sortas="e-/var/log/wtmp">/var/log/wtmp</primary> + </indexterm> <para>Some programs use hard-wired paths to programs which do not exist yet. In order to satisfy these programs, create a number of symbolic links which will be @@ -20,4 +44,94 @@ ln -sv /tools/bin/perl /usr/bin ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib ln -sv bash /bin/sh</userinput></screen> + <para>A proper Linux system maintains a list of the mounted file systems in + the file <filename>/etc/mtab</filename>. Normally, this file would be + created when we mount a new file system. Since we will not be mounting any + file systems inside our chroot environment, create an empty file for + utilities that expect the presence of <filename>/etc/mtab</filename>:</para> + +<screen><userinput>touch /etc/mtab</userinput></screen> + + <para>In order for user <systemitem class="username">root</systemitem> to be + able to login and for the name <quote>root</quote> to be recognized, there + must be relevant entries in the <filename>/etc/passwd</filename> and + <filename>/etc/group</filename> files.</para> + + <para>Create the <filename>/etc/passwd</filename> file by running the following + command:</para> + +<screen><userinput>cat > /etc/passwd << "EOF" +<literal>root:x:0:0:root:/root:/bin/bash</literal> +EOF</userinput></screen> + + <para>The actual password for <systemitem class="username">root</systemitem> + (the <quote>x</quote> used here is just a placeholder) will be set later.</para> + + <para>Create the <filename>/etc/group</filename> file by running the following + command:</para> + +<screen><userinput>cat > /etc/group << "EOF" +<literal>root:x:0: +bin:x:1: +sys:x:2: +kmem:x:3: +tty:x:4: +tape:x:5: +daemon:x:6: +floppy:x:7: +disk:x:8: +lp:x:9: +dialout:x:10: +audio:x:11: +video:x:12: +utmp:x:13: +usb:x:14: +cdrom:x:15:</literal> +EOF</userinput></screen> + + <para>The created groups are not part of any standard—they are groups + decided on in part by the requirements of the Udev configuration in this + chapter, and in part by common convention employed by a number of existing + Linux distributions. The Linux Standard Base (LSB, available at <ulink + url="http://www.linuxbase.org"/>) recommends only that, besides the group + <systemitem class="groupname">root</systemitem> with a Group ID (GID) of 0, + a group <systemitem class="groupname">bin</systemitem> with a GID of 1 be + present. All other group names and GIDs can be chosen freely by the system + administrator since well-written programs do not depend on GID numbers, but + rather use the group's name.</para> + + <para>To remove the <quote>I have no name!</quote> prompt, start a new + shell. Since a full Glibc was installed in <xref + linkend="chapter-temporary-tools"/> and the + <filename>/etc/passwd</filename> and <filename>/etc/group</filename> + files have been created, user name and group name resolution will now + work.</para> + +<screen role="nodump"><userinput>exec /tools/bin/bash --login +h</userinput></screen> + + <para>Note the use of the <parameter>+h</parameter> directive. This tells + <command>bash</command> not to use its internal path hashing. Without this + directive, <command>bash</command> would remember the paths to binaries it has + executed. To ensure the use of the newly compiled binaries as soon as they are + installed, the <parameter>+h</parameter> directive will be used for the duration + of this chapter.</para> + + <para>The <command>login</command>, <command>agetty</command>, and + <command>init</command> programs (and others) use a number of log + files to record information such as who was logged into the system and + when. However, these programs will not write to the log files if they + do not already exist. Initialize the log files and give them + proper permissions:</para> + +<screen><userinput>touch /var/run/utmp /var/log/{btmp,lastlog,wtmp} +chgrp -v utmp /var/run/utmp /var/log/lastlog +chmod -v 664 /var/run/utmp /var/log/lastlog</userinput></screen> + + <para>The <filename>/var/run/utmp</filename> file records the users + that are currently logged in. The <filename>/var/log/wtmp</filename> + file records all logins and logouts. The + <filename>/var/log/lastlog</filename> file records when + each user last logged in. The <filename>/var/log/btmp</filename> file + records the bad login attempts.</para> + </sect1> diff --git a/general.ent b/general.ent index ca102000e..c84434982 100644 --- a/general.ent +++ b/general.ent @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!ENTITY version "udev_update-20060407"> -<!ENTITY releasedate "April 7, 2006"> +<!ENTITY version "udev_update-20060408"> +<!ENTITY releasedate "April 8, 2006"> <!ENTITY milestone "6.2"> <!ENTITY generic-version "udev_update"> <!-- Use "development", "testing", or "x.y[-pre{x}]" --> |