Разберём:
- как работают пользователи и группы в Linux;
- как создавать и изменять группы;
- как менять владельцев и группы файлов;
- как выставлять права chmod — в численном и символьном форматах;
- как проверить текущие права и диагностировать ошибки.
Как устроены пользователи и группы в Linux
Каждый файл имеет:
- владельца (user);
- группу (group);
- права доступа для владельца, группы и всех остальных.
Посмотрим на пример:
ls -l /var/www/html
Пример вывода:
-rw-r--r-- 1 www-data www-data 4210 Nov 14 index.php
- -rw-r—r— — права;
- www-data — владелец;
- www-data — группа.
Управление группами пользователей
Создать новую группу:
sudo groupadd developers
Добавить пользователя в группу:
sudo usermod -aG developers username
Проверить, в каких группах состоит пользователь:
groups username
Удалить пользователя из группы:
sudo gpasswd -d username developers
Важно: изменения вступают в силу после выхода/входа в аккаунт.
Изменение владельца файлов: chown
Команда chown меняет владельца и/или группу файла.
Синтаксис:
sudo chown user:group file
Примеры:
Назначить владельцем пользователя www-data и группу www-data:
sudo chown www-data:www-data /var/www/html/index.php
Изменить только владельца:
sudo chown dmitriy /var/www/html/index.php
Изменить владельца рекурсивно для папки:
sudo chown -R www-data:www-data /var/www/html
Изменение группы файла: chgrp
Если нужно изменить только группу — используйте chgrp.
sudo chgrp developers /var/www/project
Рекурсивно:
sudo chgrp -R developers /var/www/project
Права доступа chmod
Права делятся на три блока:
- u — владелец (user)
- g — группа (group)
- o — остальные (others)
И три типа прав:
- r — чтение (4)
- w — запись (2)
- x — выполнение (1)
Числовой режим chmod
chmod 644 file
chmod 755 folder
- 644 = rw-r—r—
- 755 = rwxr-xr-x
Символьный режим chmod
Добавить право выполнения владельцу:
chmod u+x script.sh
Убрать право записи у группы:
chmod g-w file
Установить одинаковые права владельцу и группе:
chmod ug=rw file
Особые биты: setuid, setgid, sticky
Если нужен расширенный контроль доступа — используются специальные биты.
1. setuid (4xxx)
Позволяет выполнять файл от имени владельца.
chmod 4755 /usr/bin/app
2. setgid (2xxx)
Новые файлы наследуют группу родительской директории:
chmod 2775 /var/www/project
3. sticky-bit (1xxx)
Используется для каталогов, чтобы пользователи не могли удалять файлы друг друга.
chmod +t /var/www/uploads
Типичные ошибки и диагностика
1. «Permission denied» при редактировании файла
Проверьте владельца:
ls -l file
Исправить:
sudo chown user:user file
2. Команда выполняется с ошибкой даже с sudo
Файл не имеет права выполнения:
chmod +x script.sh
3. Новые файлы создаются с неправильными правами
Проверьте umask:
umask
4. Группа не наследуется автоматически
Поставьте SGID-бит:
sudo chmod 2775 /var/www/project
Итоги
-
Узнали, как устроены группы и пользователи в Linux.
-
Научились создавать группы и назначать пользователей.
-
Разобрали chown, chmod и chgrp с практическими примерами.
-
Ознакомились с особыми битами и диагностикой ошибок.
Вывод: строгие и правильные права доступа — основа безопасности любой VPS. Управляйте владельцами, группами и правами аккуратно — и система станет значительно защищённее.