From c4d43142181a45b849a15cf8ec5ebe61cea33897 Mon Sep 17 00:00:00 2001 From: Sn4il Date: Wed, 10 Jan 2024 16:57:29 +0300 Subject: LFS 12 mirror --- lfs-12.0-sysv/chapter07/createfiles.html | 244 +++++++++++++++++++++++++++++++ 1 file changed, 244 insertions(+) create mode 100644 lfs-12.0-sysv/chapter07/createfiles.html (limited to 'lfs-12.0-sysv/chapter07/createfiles.html') diff --git a/lfs-12.0-sysv/chapter07/createfiles.html b/lfs-12.0-sysv/chapter07/createfiles.html new file mode 100644 index 0000000..be47c7e --- /dev/null +++ b/lfs-12.0-sysv/chapter07/createfiles.html @@ -0,0 +1,244 @@ + + + + + + 7.6. Создание основных файлов и символических ссылок + + + + + + + + +
+

+ 7.6. + Создание основных файлов и символических ссылок +

+

+ Исторически сложилось, что Linux хранит список примонтированных + файловых систем в файле /etc/mtab. + Современные ядра хранят этот список внутри себя и предоставляют его + пользователю через файловую систему /proc. Чтобы удовлетворять требованиям утилит, + которые ожидают наличия /etc/mtab, + создайте следующую символическую ссылку: +

+
ln -sv /proc/self/mounts /etc/mtab
+

+ Создайте файл /etc/hosts, на который + будут ссылаться некоторые наборы тестов, а также один из файлов + конфигурации Perl: +

+
cat > /etc/hosts << EOF
+127.0.0.1  localhost $(hostname)
+::1        localhost
+EOF
+

+ Чтобы пользователь root мог войти в + систему и распознавался системой, в файлах /etc/passwd и /etc/group должны быть соответствующие записи. +

+

+ Создайте файл /etc/passwd выполнив + следующую команду: +

+
cat > /etc/passwd << "EOF"
+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
+EOF
+

+ Пароль пользователя root будет задан + позднее. +

+

+ Создайте файл /etc/group, выполнив + следующую команду: +

+
cat > /etc/group << "EOF"
+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:
+usb:x:14:
+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:
+EOF
+

+ Созданные группы не являются частью какого-либо стандарта — это + группы, определяемые частично требованиями конфигурации Udev в главе + 9, а частично общими соглашениями, используемыми в ряде существующих + дистрибутивов Linux. Кроме того, некоторые наборы тестов зависят от + конкретных пользователей или групп. Спецификация LSB (доступна по + адресу https://refspecs.linuxfoundation.org/lsb.shtml) + рекомендует, чтобы, помимо группы root с идентификатор (GID) 0 присутствовала + группа bin с GID 1. GID 5 широко + используется для группы tty, число 5 + также используется в /etc/fstab для файловой системы devpts. Все остальные имена групп и GID могут + свободно выбираться системным администратором, так как хорошо + написанные программы не зависят от номеров GID, а чаще используют + название группы. +

+

+ Идентификатор 65534 используется ядром для NFS и отдельных + пользовательских пространств имен для несопоставленных пользователей + и групп (они существуют на сервере NFS или родительском пространстве + имен пользователя, но «не + существует» на локальном компьютере или в отдельном + пространстве имен). Мы присваиваем nobody и nogroup + для того, чтобы избежать несопоставленных идентификаторов. Другие + дистрибутивы могут обрабатывать этот идентификатор по-разному, + поэтому любая переносимая программа не должна зависеть от этого + присвоения. +

+

+ Для некоторых тестов в Глава 8 + требуется обычный пользователь. Добавим такого пользователя здесь и + удалим эту учетную запись в конце главы. +

+
echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd
+echo "tester:x:101:" >> /etc/group
+install -o tester -d /home/tester
+

+ Чтобы удалить приглашение «I + have no name!», запустите новую оболочку. Поскольку + файлы /etc/passwd и /etc/group были созданы, разрешение имен + пользователей и групп теперь будет работать: +

+
exec /usr/bin/bash --login
+

+ Программы login, + agetty, init (и другие) используют ряд + журналов для записи такой информации, как кто и когда входил в + систему. Однако эти программы не будут записывать данные в журналы, + если они еще не существуют. Инициализируйте журналы и предоставьте им + соответствующие разрешения: +

+
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
+

+ В файл /var/log/wtmp записываются все + входы и выходы из системы. В файл /var/log/lastlog записывается время последнего + входа каждого пользователя в систему. В файл /var/log/faillog записываются неудачные попытки + входа в систему. В файл /var/log/btmp + записываются неудачные попытки входа в систему. +

+
+ [Примечание] +

+ Примечание +

+

+ В файле /run/utmp записываются + пользователи, которые в данный момент вошли в систему. Он создаётся + динамически, в процессе выполнения сценариев загрузки. +

+
+
+ + + -- cgit v1.2.3