Причины:
1. Принцип наименьших привилегий (PoLP): Разные пользователи изолируют риски. Guest (UID 65534) имеет минимальные права (обычно `nobody`), обычный user (UID ≥1000) работает с файлами и процессами без доступа к `/etc/shadow` или ядру, admin (группа `sudo`/`wheel`) получает root via `sudo` с логированием.
2. Форензика и аудит: `sudo` логирует каждую команду в `/var/log/auth.log` (или `journalctl`). Если бы все работали как root, журнал был бы бесполезен — нельзя определить, кто и когда выполнял `rm -rf /`.
3. Правильная подсистема прав: Стандартная Unix модель: r/w/x для владельца, группы, остальных. Разные пользователи — это разные владельцы файлов/процессов. Guest изолируется от домашних папок admin и user.
Решение:
Создавать пользователей с минимально необходимым набором прав. Стандартная схема:
- root — только для администрирования системы (установка пакетов, управление ядром). Не входить в сессию без крайней необходимости.
- user — обычная учетка для повседневной работы (UID 1001). Запрещен вход в `/root`.
- admin — член группы `sudo` (на Debian/Ubuntu) или `wheel` (на RHEL/CentOS). Получает root права только через `sudo` с паролем.
Пример настройки:
bash
<h2 id="sozdat-admina-s-sudo">Создать админа с sudo</h2>
useradd -m -G wheel admin # RHEL/CentOS
<h2 id="ili-na-debian-ubuntu">Или на Debian/Ubuntu:</h2>
usermod -aG sudo admin
<h2 id="sozdat-gostevogo-s-ogranicheniem">Создать гостевого с ограничением</h2>
useradd -m -s /bin/false guest # без shell
<h2 id="ili-adduser-disabled-password-guest">Или adduser --disabled-password guest</h2>
passwd -l guest # блокировка входа по паролюДля гостевых сессий в Linux Mint/KDE используйте встроенные механизмы `guest-session` — они создают временный аккаунт с минимальными правами, данные которого удаляются при выходе.
Важно: Никогда не давайте обычному user права на sudo. Для временного повышения прав используйте `sudo -u other_user command`. Настройте `sudoers` (через `visudo`) для ограничения команд: `admin ALL=(ALL) /usr/bin/apt, /usr/bin/systemctl`.