Исторически сложилось, что 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
записываются
пользователи, которые в данный момент вошли в систему. Он создаётся
динамически, в процессе выполнения сценариев загрузки.