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

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

Права доступа: какие бывают

В Linux действует гибкая система управления правами доступа, которая помогает контролировать, кто и как может взаимодействовать с файлами и каталогами. Это значительно повышает безопасность системы.

Полный контроль над всей системой имеет только суперпользователь root — именно поэтому использование root для повседневной работы считается рискованным: любая ошибка может привести к серьёзным повреждениям. Обычные пользователи по умолчанию могут работать только в своём домашнем каталоге и не имеют доступа к системным файлам, что предотвращает случайные или вредоносные изменения.

Для каждого файла или папки определяются три типа прав:

  • r (read) — чтение,

  • w (write) — запись (изменение содержимого),

  • x (execute) — выполнение (для файлов) или возможность входа (для каталогов).

Эти права применяются к трём категориям пользователей:

  1. Владелец — пользователь, которому принадлежит файл (обычно тот, кто его создал).

  2. Группа — набор пользователей, объединённых в одну группу; им выдаются общие права на файл.

  3. Остальные — все остальные пользователи системы, не входящие в первые две категории.

Для каждой из этих категорий можно задать свой набор прав независимо от других.

Права указываются двумя способами:

  • Буквенный формат: например, rwxr-xr--.

  • Цифровой формат: каждое право кодируется числом (чтение = 4, запись = 2, выполнение = 1), и сумма даёт итоговое значение.

Например, 7 = 4+2+1 = rwx.

Права записываются в порядке: владелец, группа, остальные.
Так, значение 755 (rwxr-xr-x) означает: - владелец может читать, писать и запускать (или заходить в каталог), - все остальные — только читать и запускать (или просматривать содержимое каталога и входить в него).

Типичные примеры прав:

  • 600 (rw-------) — только владелец может читать и редактировать файл.

  • 644 (rw-r--r--) — владелец редактирует, остальные — только читают.

  • 700 (rwx------) — полный доступ только у владельца.

  • 755 (rwxr-xr-x) — владелец всё может, остальные — только смотреть и использовать (запускать файлы или входить в каталоги).

Примечание

Особое внимание стоит уделить правам на каталоги: чтобы пользователь мог не просто видеть список файлов, но и получать информацию о них (например, размер или владельца), ему нужны как минимум права чтение + выполнение (r-x, то есть 5). Право только на чтение (r--) позволит увидеть имена файлов, но не их свойства, а без права выполнения (x) нельзя будет даже зайти в каталог командой cd.

Настройка прав доступа

Настройка прав доступа по SSH

Права доступа к файлам и каталогам в Linux настраиваются с помощью команды chmod. Существует два основных способа её использования.

Способ 1: Числовой (абсолютный) режим

При этом способе вы сразу задаёте полный набор прав для всех трёх категорий пользователей — владельца, группы и остальных — в виде трёхзначного числа.

Формат команды:

chmod XXX имя_объекта

Примеры:
- chmod 755 test.php — владелец получает полные права (rwx), а группа и остальные — только чтение и запуск (r-x).
- chmod 644 test.php — владелец может читать и редактировать, остальные — только читать.
- chmod 755 dir — аналогичные права, но для каталога.

Если нужно применить права ко всем файлам и подкаталогам внутри папки, используется флаг -R (рекурсивно):

chmod -R 755 *
⚠️ Будьте осторожны с -R — команда изменит права на всё содержимое каталога, включая вложенные папки и файлы.


Способ 2: Символьный (относительный) режим

Здесь вы изменяете только нужную часть прав, не затрагивая остальные. Это удобно, когда нужно внести небольшие корректировки.

Формат команды:

chmod [категория][действие][права] имя_объекта

Категории:

  • u — владелец (user)
  • g — группа (group)
  • o — остальные (others)
  • a — все сразу (all)

Действия:

  • + — добавить право
  • - — убрать право
  • = — установить точное значение (удалить остальные)

Права: указываются как r, w, x (например, rx, а не r-x).

Примеры:

  • chmod g+rx test.php — разрешить группе читать и запускать файл.
  • chmod g-w test.php — запретить группе запись.
  • chmod o-rw test.php — убрать у остальных право на чтение и запись.
  • chmod go+rx dir1 — дать группе и остальным право просматривать и заходить в каталог.
  • chmod -R go+r new_directory — рекурсивно разрешить группе и остальным читать все файлы и папки внутри new_directory.

Этот способ гибче и безопаснее, особенно когда важно не нарушить уже настроенные права.

Настройка прав доступа через FTP -клиент

Изменять и задавать права доступа также очень удобно и просто можно с помощью FTP -клиента. Рассмотрим порядок изменения прав с помощью бесплатного клиента FileZilla.

  1. Подключитесь к серверу и выберите нужный файл или каталог.
  2. Кликните правой кнопкой мыши и в открывшемся списке выберите "Права доступа к файлу..."
  3. Задайте нужные права.

Просмотр текущих прав доступа

Для посмотра назначенных прав доступа используется команда ls

Назначенные права для файлов в текущем каталоге:

username@server:~/my_directory$ ls -l
Назначенные права для конкретного файла или каталога **(например text.doc или dir1)* в текущем каталоге:

ls -l text.doc
ls -l dir1
Назначенные права для файлов во всех вложенных подкаталогах в текущем каталоге:

ls -Rl
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×