Файлы конфигурации Linux¶
Ключевые конфигурационные файлы для экзамена LPIC-1.
Пользователи и группы¶
/etc/passwd¶
имя:x:UID:GID:комментарий:домашний_каталог:оболочка
root:x:0:0:root:/root:/bin/bash
david:x:1000:1000:David,,,:/home/david:/bin/bash
sshd:x:110:65534::/run/sshd:/usr/sbin/nologin
| Поле | Описание |
|---|---|
| 1 — имя | Имя пользователя (login) |
2 — x |
Пароль хранится в /etc/shadow |
| 3 — UID | ID пользователя (0 = root, 1–999 = системные, 1000+ = обычные) |
| 4 — GID | ID первичной группы |
| 5 — GECOS | Комментарий / полное имя |
| 6 — home | Домашний каталог |
| 7 — shell | Командная оболочка (/sbin/nologin — вход запрещён) |
/etc/shadow¶
Зашифрованные пароли (только root).
имя:хэш:lastchg:min:max:warn:inactive:expire:reserved
root:$6$xyz...:19500:0:99999:7:::
david:$6$abc...:19600:7:90:14:30::
| Поле | Описание |
|---|---|
| 2 — хэш | $6$ = SHA-512; ! = заблокирован; * = нет пароля |
| 3 — lastchg | Дней с 01.01.1970 до последней смены пароля |
| 4 — min | Минимум дней между сменами |
| 5 — max | Максимум дней действия пароля |
| 6 — warn | Предупреждение за N дней до истечения |
| 7 — inactive | Дней отсрочки после истечения до блокировки |
| 8 — expire | Дата истечения аккаунта (дней с эпохи) |
/etc/group¶
| Поле | Описание |
|---|---|
| 1 — имя | Имя группы |
2 — x |
Пароль группы (в /etc/gshadow) |
| 3 — GID | ID группы |
| 4 — члены | Пользователи (через запятую) |
Файловые системы¶
/etc/fstab¶
# устройство точка_монтирования тип опции dump pass
/dev/sda1 / ext4 defaults 0 1
/dev/sda2 /home ext4 defaults 0 2
/dev/sda3 none swap sw 0 0
UUID=a1b2-c3d4 /data xfs defaults 0 2
//server/share /mnt/smb cifs credentials=/etc/smbcred 0 0
| Поле | Описание |
|---|---|
| 1 — устройство | /dev/sda1, UUID=..., LABEL=..., //server/share |
| 2 — точка монтирования | /, /home, none (swap) |
| 3 — тип ФС | ext4, xfs, btrfs, swap, nfs, cifs, vfat |
| 4 — опции | defaults, ro, noexec, noatime, user, auto |
| 5 — dump | 0 = не включать в dump; 1 = включить |
| 6 — pass | 0 = не проверять fsck; 1 = /; 2 = остальные |
defaults = rw,suid,dev,exec,auto,nouser,async
Сеть¶
/etc/hosts¶
# IP-адрес имя_хоста псевдонимы
127.0.0.1 localhost
127.0.1.1 myhost.example.com myhost
192.168.1.10 server1.local server1
::1 localhost ip6-localhost
/etc/resolv.conf¶
nameserver 8.8.8.8
nameserver 8.8.4.4
search example.com corp.local
domain example.com
options ndots:5
| Директива | Описание |
|---|---|
nameserver |
IP DNS-сервера (до 3 строк) |
search |
Домены для дополнения коротких имён |
domain |
Локальный домен (заменяет search) |
options ndots:n |
Минимум точек для полного имени |
/etc/hostname¶
/etc/nsswitch.conf¶
Порядок разрешения имён:
passwd: files systemd
group: files systemd
hosts: files mdns4_minimal [NOTFOUND=return] dns
networks: files
/etc/network/interfaces (Debian/Ubuntu)¶
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
auto eth1
iface eth1 inet dhcp
/etc/sysconfig/network-scripts/ifcfg-eth0 (RHEL/CentOS)¶
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
Инициализация и загрузка¶
/etc/inittab (SysV init)¶
# id:уровень_запуска:действие:процесс
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l3:3:wait:/etc/rc.d/rc 3
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Уровни запуска: 0 = выключение, 1 = однопользовательский, 2–5 = многопользовательский, 6 = перезагрузка
/etc/default/grub (GRUB 2)¶
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Ubuntu"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
После изменения: update-grub (Debian) или grub2-mkconfig -o /boot/grub2/grub.cfg (RHEL)
Планировщик задач¶
/etc/crontab (системный)¶
# мин час д.м мес д.н пользователь команда
* * * * * root /usr/local/bin/backup.sh
30 2 * * 1 root /usr/bin/weekly-cleanup.sh
0 9 1 * * david /home/david/monthly.sh
Crontab пользователя (crontab -e)¶
# мин час д.м мес д.н команда
0 * * * * /home/user/hourly.sh
*/5 * * * * /home/user/check.sh
0 8 * * 1-5 /home/user/workday.sh
| Поле | Значения | Спецсимволы |
|---|---|---|
| минута | 0–59 | * = любое, , = список, - = диапазон, /n = каждые n |
| час | 0–23 | |
| день месяца | 1–31 | |
| месяц | 1–12 | |
| день недели | 0–7 (0 и 7 = вс) |
Специальные строки: @reboot, @daily, @weekly, @monthly, @yearly
SSH¶
/etc/ssh/sshd_config (сервер)¶
Port 22
ListenAddress 0.0.0.0
PermitRootLogin no
PasswordAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
AllowUsers david alice
MaxAuthTries 3
ClientAliveInterval 300
~/.ssh/config (клиент)¶
Host myserver
HostName 192.168.1.10
User david
Port 22
IdentityFile ~/.ssh/id_rsa
ServerAliveInterval 60
Sudo¶
/etc/sudoers (редактировать через visudo)¶
# Синтаксис: пользователь хосты=(от_кого:группа) [NOPASSWD:] команды
root ALL=(ALL:ALL) ALL
david ALL=(ALL) NOPASSWD: /usr/bin/apt, /usr/bin/systemctl
%sudo ALL=(ALL:ALL) ALL
%wheel ALL=(ALL) ALL
| Элемент | Значение |
|---|---|
ALL (хосты) |
Любой хост |
(ALL) |
Любой пользователь |
NOPASSWD: |
Без запроса пароля |
%group |
Группа вместо пользователя |
Логирование¶
/etc/rsyslog.conf¶
# Синтаксис: facility.severity назначение
auth,authpriv.* /var/log/auth.log
*.info;mail.none /var/log/messages
mail.* /var/log/mail.log
kern.* /var/log/kern.log
*.* @192.168.1.5:514 # UDP на удалённый сервер
Facility: kern, user, mail, daemon, auth, syslog, lpr, news, cron, local0–7
Severity: emerg, alert, crit, err, warning, notice, info, debug