diff options
author | Sn4il <sn4il@thedroth.rocks> | 2024-09-02 15:54:35 +0300 |
---|---|---|
committer | Sn4il <sn4il@thedroth.rocks> | 2024-09-02 15:54:35 +0300 |
commit | 2203e654b389586650d553251b04544a34f189bf (patch) | |
tree | 0125b69fc70a2506c53158ba2020993a5b8985b7 /lfs-12.2-sysv/chapter07/createfiles.html | |
parent | 200d528e55ca954d37769f4d143f10c9519b00e7 (diff) | |
download | sn4il-site-2203e654b389586650d553251b04544a34f189bf.tar.gz sn4il-site-2203e654b389586650d553251b04544a34f189bf.zip |
LFS 12.2
Diffstat (limited to 'lfs-12.2-sysv/chapter07/createfiles.html')
-rw-r--r-- | lfs-12.2-sysv/chapter07/createfiles.html | 266 |
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 > /etc/hosts << 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 > /etc/passwd << "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 > /etc/group << "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. Установка базового системного программного обеспечения">Глава 8</a> + требуется обычный пользователь. Добавим такого пользователя здесь и + удалим эту учетную запись в конце главы. + </p> + <pre class="userinput"><kbd class= + "command">echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd +echo "tester:x:101:" >> /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> |