Linux с самого рождения был системой, где за одной машиной могут сидеть много людей сразу. Даже если у вас домашний ноутбук и пользователь один, эта многопользовательская модель никуда не делась - она защищает систему от вас же самих и от случайно запущенной вредной программы. В этом уроке разберёмся, кто такой root, почему под ним опасно работать постоянно, как устроены права на файлы и что должен делать новичок, чтобы не превратить свежую систему в решето.

Как это работает
Представьте офисное здание. У каждого сотрудника своя карта-пропуск, которая открывает только нужные двери. А есть мастер-ключ у завхоза, который открывает вообще всё. В Linux обычный пользователь - это сотрудник со своим пропуском, а root (он же суперпользователь) - это тот самый мастер-ключ. У root нет ограничений: он может удалить любой файл, остановить любую службу, переписать системные настройки.
Именно поэтому сидеть под root постоянно - плохая идея. Любая опечатка превращается в катастрофу, а вредоносный скрипт получает полную власть над машиной. Современный подход другой: вы работаете под обычным пользователем, а когда нужны права администратора, на секунду берёте мастер-ключ через команду sudo. Сделали дело - и снова обычный человек.
Каждый файл в системе помнит две вещи: кто его владелец и какой группе он принадлежит. Группа - это просто список пользователей, которым удобно дать одинаковые права скопом. И для каждого файла есть три набора разрешений: для владельца, для группы и для всех остальных. Разрешений всего три типа - чтение (r), запись (w) и выполнение (x).
Команды и примеры
Сначала узнаем, кто мы такие и в каких группах состоим.
Код: Выделить всё
whoami # печатает имя текущего пользователя
id # показывает ваш числовой UID, основную группу и все группы
id -nG # только имена групп, к которым вы принадлежите
Код: Выделить всё
cat /etc/passwd # каждая строка - один аккаунт
# формат: имя:x:UID:GID:описание:домашний каталог:оболочка
Код: Выделить всё
# Debian 13 / Ubuntu 24.04
sudo adduser anna # создать пользователя (спросит пароль)
sudo usermod -aG sudo anna # добавить в группу sudo
# RHEL 10 / Fedora 41+
sudo useradd anna # создать пользователя
sudo passwd anna # задать ему пароль
sudo usermod -aG wheel anna # добавить в группу wheel
Код: Выделить всё
ls -l report.txt
# -rw-r--r-- 1 anna staff 1024 jun 13 12:00 report.txt
Менять права удобно командой chmod. Есть два способа: символьный и числовой.
Код: Выделить всё
chmod u+x script.sh # добавить владельцу (u) право выполнения
chmod go-w report.txt # убрать запись у группы (g) и остальных (o)
# числовой способ: r=4, w=2, x=1, складываем
chmod 644 report.txt # владелец rw- (6), группа r-- (4), остальные r-- (4)
chmod 755 script.sh # владелец rwx (7), группа и остальные r-x (5)
Код: Выделить всё
sudo chown anna report.txt # владельцем станет anna
sudo chown anna:devs report.txt # владелец anna, группа devs
Код: Выделить всё
# Debian / Ubuntu
sudo apt update && sudo apt upgrade
# RHEL / Fedora
sudo dnf upgrade
- Работа под root в повседневных задачах. Откройте обычную сессию и берите sudo точечно. Привычка набирать sudo перед всем подряд так же опасна.
- chmod 777 на файл или папку, лишь бы заработало. Это открывает запись всем подряд - прямая дыра. Подумайте, какие три цифры реально нужны.
- Забыли флаг -a в usermod -aG. Без него вы не добавите пользователя в группу, а ЗАМЕНИТЕ все его группы одной. Человек может потерять доступ к sudo.
- Путают права на каталог и на файлы внутри. Чтобы войти в папку, нужен бит x на самой папке, а не только r.
- Слабые или повторно используемые пароли. Менеджер паролей и длинная фраза решают проблему. Для серверов вообще отключают вход по паролю в пользу SSH-ключей.
- Выполните whoami и id - запишите свой UID и список групп.
- Создайте файл: touch lab5.txt и посмотрите его права через ls -l.
- Сделайте файл доступным на запись только владельцу: chmod 600 lab5.txt, проверьте результат через ls -l.
- Создайте каталог mkdir secret и закройте его от остальных: chmod 750 secret.
- Запустите обновление списка пакетов (apt update или dnf check-update) и убедитесь, что без sudo команда ругается на права.
- Чем root отличается от обычного пользователя и почему не стоит сидеть под root постоянно?
- Что означает строка -rwxr-x--- в выводе ls -l, если разобрать её по тройкам?
- Как одним числом записать права rw-r--r-- и почему получается именно так?
- В какую группу нужно добавить пользователя для sudo в Ubuntu и в Fedora и почему важен флаг -a?
- Где хранятся имена пользователей, а где их пароли, и почему они разделены?