pwdgroup.xml 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
  3. <!ENTITY % general-entities SYSTEM "../general.ent">
  4. %general-entities;
  5. ]>
  6. <sect1 id="ch-system-pwdgroup">
  7. <title>Creating the passwd, group, and log Files</title>
  8. <?dbhtml filename="pwdgroup.html"?>
  9. <indexterm zone="ch-system-pwdgroup"><primary sortas="e-/etc/passwd">/etc/passwd</primary></indexterm>
  10. <indexterm zone="ch-system-pwdgroup"><primary sortas="e-/etc/group">/etc/group</primary></indexterm>
  11. <indexterm zone="ch-system-pwdgroup"><primary sortas="e-/var/run/utmp">/var/run/utmp</primary></indexterm>
  12. <indexterm zone="ch-system-pwdgroup"><primary sortas="e-/var/log/btmp">/var/log/btmp</primary></indexterm>
  13. <indexterm zone="ch-system-pwdgroup"><primary sortas="e-/var/log/lastlog">/var/log/lastlog</primary></indexterm>
  14. <indexterm zone="ch-system-pwdgroup"><primary sortas="e-/var/log/wtmp">/var/log/wtmp</primary></indexterm>
  15. <para>In order for user <emphasis>root</emphasis> to be able to login
  16. and for the name <quote>root</quote> to be recognized, there must be relevant
  17. entries in the <filename>/etc/passwd</filename> and
  18. <filename>/etc/group</filename> files.</para>
  19. <para>Create the <filename>/etc/passwd</filename> file by running the following
  20. command:</para>
  21. <screen><userinput>cat &gt; /etc/passwd &lt;&lt; "EOF"
  22. <literal>root:x:0:0:root:/root:/bin/bash</literal>
  23. EOF</userinput></screen>
  24. <para>The actual password for <emphasis>root</emphasis> (the <quote>x</quote>
  25. used here is just a placeholder) will be set later.</para>
  26. <para>Create the <filename>/etc/group</filename> file by running the following
  27. command:</para>
  28. <screen><userinput>cat &gt; /etc/group &lt;&lt; "EOF"
  29. <literal>root:x:0:
  30. bin:x:1:
  31. sys:x:2:
  32. kmem:x:3:
  33. tty:x:4:
  34. tape:x:5:
  35. daemon:x:6:
  36. floppy:x:7:
  37. disk:x:8:
  38. lp:x:9:
  39. dialout:x:10:
  40. audio:x:11:
  41. video:x:12:
  42. utmp:x:13:
  43. usb:x:14:
  44. cdrom:x:15:</literal>
  45. EOF</userinput></screen>
  46. <para>The created groups are not part of any standard&mdash;they are groups
  47. decided on in part by the requirements of the Udev configuration in this
  48. chapter, and in part by common convention employed by a number of existing Linux
  49. distributions. The Linux Standard Base (LSB, available at <ulink
  50. url="http://www.linuxbase.org"/>) recommends only that, besides the group
  51. <quote>root</quote> with a Group ID (GID) of 0, a group <quote>bin</quote> with
  52. a GID of 1 be present. All other group names and GIDs can be chosen freely by
  53. the system administrator since well-written programs do not depend on GID
  54. numbers, but rather use the group's name.</para>
  55. <para>To remove the <quote>I have no name!</quote> prompt, start a new
  56. shell. Since a full Glibc was installed in <xref
  57. linkend="chapter-temporary-tools"/> and the
  58. <filename>/etc/passwd</filename> and <filename>/etc/group</filename>
  59. files have been created, user name and group name resolution will now
  60. work.</para>
  61. <screen role="nodump"><userinput>exec /tools/bin/bash --login +h</userinput></screen>
  62. <para>Note the use of the <parameter>+h</parameter> directive. This tells
  63. <command>bash</command> not to use its internal path hashing. Without this
  64. directive, <command>bash</command> would remember the paths to binaries it has
  65. executed. To ensure the use of the newly compiled binaries as soon as they are
  66. installed, the <parameter>+h</parameter> directive will be used for the duration
  67. of this chapter.</para>
  68. <para>The <command>login</command>, <command>agetty</command>, and
  69. <command>init</command> programs (and others) use a number of log
  70. files to record information such as who was logged into the system and
  71. when. However, these programs will not write to the log files if they
  72. do not already exist. Initialize the log files and give them
  73. proper permissions:</para>
  74. <screen><userinput>touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
  75. chgrp -v utmp /var/run/utmp /var/log/lastlog
  76. chmod -v 664 /var/run/utmp /var/log/lastlog</userinput></screen>
  77. <para>The <filename>/var/run/utmp</filename> file records the users
  78. that are currently logged in. The <filename>/var/log/wtmp</filename>
  79. file records all logins and logouts. The
  80. <filename>/var/log/lastlog</filename> file records when
  81. each user last logged in. The <filename>/var/log/btmp</filename> file
  82. records the bad login attempts.</para>
  83. </sect1>