summaryrefslogtreecommitdiff
path: root/lfs-12.2-sysv/chapter07/createfiles.html
diff options
context:
space:
mode:
Diffstat (limited to 'lfs-12.2-sysv/chapter07/createfiles.html')
-rw-r--r--lfs-12.2-sysv/chapter07/createfiles.html266
1 files changed, 266 insertions, 0 deletions
diff --git a/lfs-12.2-sysv/chapter07/createfiles.html b/lfs-12.2-sysv/chapter07/createfiles.html
new file mode 100644
index 0000000..588c103
--- /dev/null
+++ b/lfs-12.2-sysv/chapter07/createfiles.html
@@ -0,0 +1,266 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
+ <title>
+ 7.6. Создание основных файлов и символических ссылок
+ </title>
+ <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
+ <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" />
+ <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
+ "text/css" media="print" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ </head>
+ <body class="lfs" id="lfs-12.2">
+ <div class="navheader">
+ <h4>
+ Линукс с нуля - Версия 12.2
+ </h4>
+ <h3>
+ Глава 7. Вход в окружение Chroot и создание дополнительных временных
+ инструментов
+ </h3>
+ <ul>
+ <li class="prev">
+ <a accesskey="p" href="creatingdirs.html" title=
+ "Создание каталогов">Пред.</a>
+ <p>
+ Создание каталогов
+ </p>
+ </li>
+ <li class="next">
+ <a accesskey="n" href="gettext.html" title=
+ "Gettext-0.22.5">След.</a>
+ <p>
+ Gettext-0.22.5
+ </p>
+ </li>
+ <li class="up">
+ <a accesskey="u" href="chapter07.html" title=
+ "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов">
+ Наверх</a>
+ </li>
+ <li class="home">
+ <a accesskey="h" href="../index.html" title=
+ "Линукс с нуля - Версия 12.2">Начало</a>
+ </li>
+ </ul>
+ </div>
+ <h1 class="sect1">
+ <a id="ch-tools-createfiles" name="ch-tools-createfiles"></a>7.6.
+ Создание основных файлов и символических ссылок
+ </h1>
+ <div class="sect1" lang="ru" xml:lang="ru">
+ <p>
+ Исторически сложилось, что Linux хранит список примонтированных
+ файловых систем в файле <code class="filename">/etc/mtab</code>.
+ Современные ядра хранят этот список внутри себя и предоставляют его
+ пользователю через файловую систему <code class=
+ "filename">/proc</code>. Чтобы удовлетворять требованиям утилит,
+ которые ожидают наличия <code class="filename">/etc/mtab</code>,
+ создайте следующую символическую ссылку:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">ln -sv /proc/self/mounts /etc/mtab</kbd></pre>
+ <p>
+ Создайте файл <code class="filename">/etc/hosts</code>, на который
+ будут ссылаться некоторые наборы тестов, а также один из файлов
+ конфигурации Perl:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">cat &gt; /etc/hosts &lt;&lt; EOF
+<code class="literal">127.0.0.1 localhost $(hostname)
+::1 localhost</code>
+EOF</kbd></pre>
+ <p>
+ Чтобы пользователь <code class="systemitem">root</code> мог войти в
+ систему и распознавался системой, в файлах <code class=
+ "filename">/etc/passwd</code> и <code class=
+ "filename">/etc/group</code> должны быть соответствующие записи.
+ </p>
+ <p>
+ Создайте файл <code class="filename">/etc/passwd</code> выполнив
+ следующую команду:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">cat &gt; /etc/passwd &lt;&lt; "EOF"
+<code class="literal">root:x:0:0:root:/root:/bin/bash
+bin:x:1:1:bin:/dev/null:/usr/bin/false
+daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false
+messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false
+uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false
+nobody:x:65534:65534:Unprivileged User:/dev/null:/usr/bin/false</code>
+EOF</kbd></pre>
+ <p>
+ Пароль пользователя <code class="systemitem">root</code> будет задан
+ позднее.
+ </p>
+ <p>
+ Создайте файл <code class="filename">/etc/group</code>, выполнив
+ следующую команду:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">cat &gt; /etc/group &lt;&lt; "EOF"
+<code class="literal">root:x:0:
+bin:x:1:daemon
+sys:x:2:
+kmem:x:3:
+tape:x:4:
+tty: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:
+cdrom:x:15:
+adm:x:16:
+messagebus:x:18:
+input:x:24:
+mail:x:34:
+kvm:x:61:
+uuidd:x:80:
+wheel:x:97:
+users:x:999:
+nogroup:x:65534:</code>
+EOF</kbd></pre>
+ <p>
+ Созданные группы не являются частью какого-либо стандарта — это
+ группы, определяемые частично требованиями конфигурации Udev в главе
+ 9, а частично общими соглашениями, используемыми в ряде существующих
+ дистрибутивов Linux. Кроме того, некоторые наборы тестов зависят от
+ конкретных пользователей или групп. Спецификация LSB (доступна по
+ адресу <a class="ulink" href=
+ "https://refspecs.linuxfoundation.org/lsb.shtml">https://refspecs.linuxfoundation.org/lsb.shtml</a>)
+ рекомендует, чтобы, помимо группы <code class=
+ "systemitem">root</code> с идентификатор (GID) 0 присутствовала
+ группа <code class="systemitem">bin</code> с GID 1. GID 5 широко
+ используется для группы <code class="systemitem">tty</code>, число 5
+ также используется в <span class="phrase"><code class=
+ "filename">/etc/fstab</code></span> для файловой системы <code class=
+ "systemitem">devpts</code>. Все остальные имена групп и GID могут
+ свободно выбираться системным администратором, так как хорошо
+ написанные программы не зависят от номеров GID, а чаще используют
+ название группы.
+ </p>
+ <p>
+ Идентификатор 65534 используется ядром для NFS и отдельных
+ пользовательских пространств имен для несопоставленных пользователей
+ и групп (они существуют на сервере NFS или родительском пространстве
+ имен пользователя, но <span class="quote">«<span class="quote">не
+ существует</span>»</span> на локальном компьютере или в отдельном
+ пространстве имен). Мы присваиваем <code class=
+ "systemitem">nobody</code> и <code class="systemitem">nogroup</code>
+ для того, чтобы избежать несопоставленных идентификаторов. Другие
+ дистрибутивы могут обрабатывать этот идентификатор по-разному,
+ поэтому любая переносимая программа не должна зависеть от этого
+ присвоения.
+ </p>
+ <p>
+ Для некоторых пакетов требуется локаль.
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">localedef -i C -f UTF-8 C.UTF-8</kbd></pre>
+ <p>
+ Для некоторых тестов в <a class="xref" href=
+ "../chapter08/chapter08.html" title=
+ "Глава 8. Установка базового системного программного обеспечения">Глава&nbsp;8</a>
+ требуется обычный пользователь. Добавим такого пользователя здесь и
+ удалим эту учетную запись в конце главы.
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">echo "tester:x:101:101::/home/tester:/bin/bash" &gt;&gt; /etc/passwd
+echo "tester:x:101:" &gt;&gt; /etc/group
+install -o tester -d /home/tester</kbd></pre>
+ <p>
+ Чтобы удалить приглашение <span class="quote">«<span class="quote">I
+ have no name!</span>»</span>, запустите новую оболочку. Поскольку
+ файлы <code class="filename">/etc/passwd</code> и <code class=
+ "filename">/etc/group</code> были созданы, разрешение имен
+ пользователей и групп теперь будет работать:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">exec /usr/bin/bash --login</kbd></pre>
+ <p>
+ Программы <span class="command"><strong>login</strong></span>,
+ <span class="command"><strong>agetty</strong></span>, <span class=
+ "command"><strong>init</strong></span> (и другие) используют ряд
+ журналов для записи такой информации, как кто и когда входил в
+ систему. Однако эти программы не будут записывать данные в журналы,
+ если они еще не существуют. Инициализируйте журналы и предоставьте им
+ соответствующие разрешения:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">touch /var/log/{btmp,lastlog,faillog,wtmp}
+chgrp -v utmp /var/log/lastlog
+chmod -v 664 /var/log/lastlog
+chmod -v 600 /var/log/btmp</kbd></pre>
+ <p>
+ В файл <code class="filename">/var/log/wtmp</code> записываются все
+ входы и выходы из системы. В файл <code class=
+ "filename">/var/log/lastlog</code> записывается время последнего
+ входа каждого пользователя в систему. В файл <code class=
+ "filename">/var/log/faillog</code> записываются неудачные попытки
+ входа в систему. В файл <code class="filename">/var/log/btmp</code>
+ также записываются неудачные попытки входа в систему.
+ </p>
+ <div class="admon note">
+ <img alt="[Примечание]" src="../images/note.png" />
+ <h3>
+ Примечание
+ </h3>
+ <p>
+ В файл <code class="filename">/run/utmp</code> записываются
+ пользователи, которые в данный момент вошли в систему. Он создаётся
+ динамически, в процессе выполнения сценариев загрузки.
+ </p>
+ </div>
+ <div class="admon note">
+ <img alt="[Примечание]" src="../images/note.png" />
+ <h3>
+ Примечание
+ </h3>
+ <p>
+ Файлы <span class="phrase"><code class=
+ "filename">utmp</code>,</span> <code class="filename">wtmp</code>,
+ <code class="filename">btmp</code> и <code class=
+ "filename">lastlog</code> используют для временных меток
+ 32-разрядные целые числа, значения счетчика достигнет максимума (2
+ 147 483 647) 19 января 2038 года ("проблема 2038 года"). Многие
+ пакеты перестали их использовать, другие же, собираются прекратить
+ их использование. Вероятно, лучше считать их устаревшими.
+ </p>
+ </div>
+ </div>
+ <div class="navfooter">
+ <ul>
+ <li class="prev">
+ <a accesskey="p" href="creatingdirs.html" title=
+ "Создание каталогов">Пред.</a>
+ <p>
+ Создание каталогов
+ </p>
+ </li>
+ <li class="next">
+ <a accesskey="n" href="gettext.html" title=
+ "Gettext-0.22.5">След.</a>
+ <p>
+ Gettext-0.22.5
+ </p>
+ </li>
+ <li class="up">
+ <a accesskey="u" href="chapter07.html" title=
+ "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов">
+ Наверх</a>
+ </li>
+ <li class="home">
+ <a accesskey="h" href="../index.html" title=
+ "Линукс с нуля - Версия 12.2">Начало</a>
+ </li>
+ </ul>
+ </div>
+ </body>
+</html>