Linux

Полное руководство по установке прав доступа к файлам в Linux

В этом руководстве вы узнаете, как настраивать и контролировать права доступа к файлам в Linux с помощью команд chmod, chown, setfacl. После прочтения вы сможете безопасно ограничивать доступ к конфиденциальным данным.

Обновлено 10 июля 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 22.04Debian 12CentOS 8

Введение / Зачем это нужно

Контроль над правами доступа к файлам — ключевая часть поддержания безопасности в Linux. Правильные режимы предотвращают случайное изменение критически важных конфигурационных файлов, защищают личные данные и позволяют совместно использовать ресурсы безопасным образом. После выполнения этого руководства вы сможете быстро настраивать права, изменять владельцев и использовать расширенные ACL для тонкой грануляции доступа.

Требования / Подготовка

  • Доступ к терминалу с правами суперпользователя (sudo), если нужно изменять системные файлы.
  • Базовое знакомство с основными командами оболочки (ls, cd, sudo).
  • Файловая система должна поддерживать ACL ( большинство современных дистрибутивов уже включают их).

Пошаговая инструкция

Шаг 1: Определите текущие права доступа

Прежде чем изменять что-либо, проверьте текущие права. Используйте ls -l для краткого просмотра или stat для получения полной информации.

ls -l /path/to/file
# или
stat /path/to/file

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

Шаг 2: Измените права доступа с помощью chmod

Команда chmod позволяет быстро настроить режим доступа. Вы можете использовать символы (u, g, o, a) или числовые значения.

Примеры:

# Сделать скрипт исполняемым для всех
chmod 755 script.sh

# Добавить запись только для владельца
chmod u+x project.conf

После изменения прав проверьте результат с помощью ls -l.

Шаг 3: Измените владельца и группу с chown

chown изменяет владельца, группу или оба значения одновременно.

# Изменить владельца и группу
chown alice:developers secret.txt

# Изменить только владельца
chown bob: secret.txt

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

Шаг 4: Используйте setfacl для расширенных атрибутов

Для более детального контроля доступа, чем может предоставить традиционный режим, используйте ACL.

  1. Убедитесь, что файловая система смонтирована с параметром acl:
    mount -o remount,acl /mnt
    
  2. Назначьте права конкретному пользователю или группе:
    # Предоставить пользователю bob права на чтение и запись
    setfacl -m u:bob:rw /shared/data.txt
    

    Для группового ACL используется g:, для всех a:.
  3. Проверьте применённые правила:
    getfacl /shared/data.txt
    

Шаг 5: Проверьте результат

После внесения изменений убедитесь, что права применены так, как ожидали:

ls -l /path/to/file
getfacl /path/to/file   # только для ACL

Если что-то выглядит неправильно, проверьте права повторно и, при необходимости, скорректируйте с помощью chmod/chown/setfacl.

Проверка результата

Проверьте, что файл теперь соответствует требуемым правилам доступа. Используйте ls -l для традиционных режимов и getfacl для ACL. Если вы настроили права для совместного использования, проверьте их с другой учётной записи (желательно с другого терминала).

Возможные проблемы

  • chmod: невозможно выполнить операцию: файл или каталог не существует – удостоверьтесь, что путь корректен.
  • chown: невозможно изменить владельца: Нет такого файла или каталога – проверьте орфографию пользователя/группы (id, groups).
  • **setfacl: Ошибка: Неподдерживаемая файловая система** – убедитесь, что ACL включён в таблице монтирования (mount -t ext4 -o remount,acl /dev/sda1`).
  • **Permission denied при изменении системных файлов – используйте sudo перед любой командой chmod/chown.

Дополнительные ресурсы

  • Man-страницы: man chmod, man chown, man setfacl
  • Официальная документация по ACL: https://linux.die.net/man/5/acl

Часто задаваемые вопросы

Как просмотреть текущие права доступа к файлу?
Что делать, если команда chmod не изменяет права?
Как назначить владельца и группу одновременно?
Когда нужно использовать setfacl?

Полезное

Определите текущие права доступа
Измените права доступа с помощью chmod
Измените владельца и группу с chown
Используйте setfacl для расширенных атрибутов
Проверьте результат

Эта статья помогла вам решить проблему?