Перейти к содержанию

Файлы конфигурации 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

имя_группы:x:GID:члены
root:x:0:
sudo:x:27:david,alice
docker:x:999:david
Поле Описание
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

myserver.example.com

/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