diff --git a/chapter07/createfiles.xml b/chapter07/createfiles.xml new file mode 100644 index 0000000..6033eb4 --- /dev/null +++ b/chapter07/createfiles.xml @@ -0,0 +1,217 @@ + + + %general-entities; +]> + + + + + Создание основных файлов и символических ссылок + + + /etc/passwd + + + + /etc/group + + + + /run/utmp + + + + /var/log/btmp + + + + /var/log/lastlog + + + + /var/log/wtmp + + + Исторически сложилось, что 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 + +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 +systemd-journal-gateway:x:73:73:systemd Journal Gateway:/:/usr/bin/false +systemd-journal-remote:x:74:74:systemd Journal Remote:/:/usr/bin/false +systemd-journal-upload:x:75:75:systemd Journal Upload:/:/usr/bin/false +systemd-network:x:76:76:systemd Network Management:/:/usr/bin/false +systemd-resolve:x:77:77:systemd Resolver:/:/usr/bin/false +systemd-timesync:x:78:78:systemd Time Synchronization:/:/usr/bin/false +systemd-coredump:x:79:79:systemd Core Dumper:/:/usr/bin/false +uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false +systemd-oom:x:81:81:systemd Out Of Memory Daemon:/:/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 + +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: +systemd-journal:x:23: +input:x:24: +mail:x:34: +kvm:x:61: +systemd-journal-gateway:x:73: +systemd-journal-remote:x:74: +systemd-journal-upload:x:75: +systemd-network:x:76: +systemd-resolve:x:77: +systemd-timesync:x:78: +systemd-coredump:x:79: +uuidd:x:80: +systemd-oom:x:81: +wheel:x:97: +users:x:999: +nogroup:x:65534: +EOF + + Созданные группы не являются частью какого-либо стандарта — эти группы + частично определяются требованиями конфигурации Udev в главе + 9, и частично соглашением, используемым рядом существующих Linux + дистрибутивов. Кроме того, некоторые наборы тестов зависят от конкретных пользователей или + групп. Специфкация LSB (доступна по адресу ) рекомендует, чтобы, + помимо группы root с + идентификатор (GID) 0 присутствовала группа bin + с GID 1. GID 5 широко используется для + группы tty, число 5 + также используется в systemd + /etc/fstab для + файловой системы devpts. + Все остальные имена групп и GID могут свободно выбираться системным + администратором, так как хорошо написанные программы не зависят от номеров GID, + а чаще используют название группы. + + Идентификатор 65534 используется ядром для NFS и отдельных пользовательских + пространств имен для несопоставленных пользователей и групп (они существуют на сервере NFS + или родительском пространстве имен пользователя, но не существует на локальном + компьютере или в отдельном пространстве имен). Мы присваиваем nobody + и nogroup для того, чтобы избежать + несопоставленных идентификаторов. Другие дистрибутивы могут обрабатывать этот + идентификатор по-разному, поэтому любая переносимая программа не должна зависеть + от этого. + + Для некоторых тестов в главе требуется + обычный пользователь. Добавим такого пользователя здесь и удалим эту учетную запись + в конце главы. + +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 записываются пользователи, + которые в данный момент вошли в систему. Он создаётся динамически, в процессе + выполнения сценариев загрузки. + + diff --git a/chapter07/creatingdirs.xml b/chapter07/creatingdirs.xml index 059f06b..c797ec3 100644 --- a/chapter07/creatingdirs.xml +++ b/chapter07/creatingdirs.xml @@ -11,15 +11,15 @@ Создание каталогов Пришло время создать структуру каталогов для файловой системы LFS. + + Некоторые каталоги были созданы ранее с помощью явных инструкций или + при установке некоторых пакетов. Они повторяются ниже для полноты картины. Создайте несколько каталогов, которые не входили в ограниченный набор, используемый в предыдущих главах, выполнив следующую команду: mkdir -pv /{boot,home,mnt,opt,srv} - Некоторые каталоги были созданы ранее с помощью явных инструкций или - при установке некоторых пакетов. Они повторяются ниже для полноты картины. - Создайте необходимые подкаталоги, выполнив следующие команды: mkdir -pv /etc/{opt,sysconfig}