Как управлять группами пользователей и правами доступа к файлам (chmod, chown, chgrp) на VPS?

Разберём:

  • как работают пользователи и группы в 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 — группа.
Права доступа ls -l

Управление группами пользователей

Создать новую группу:

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. Управляйте владельцами, группами и правами аккуратно — и система станет значительно защищённее.

Оставить комментарий