Введение / Зачем это нужно
Контроль над правами доступа к файлам — ключевая часть поддержания безопасности в 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.
- Убедитесь, что файловая система смонтирована с параметром
acl:mount -o remount,acl /mnt - Назначьте права конкретному пользователю или группе:
# Предоставить пользователю bob права на чтение и запись setfacl -m u:bob:rw /shared/data.txt
Для группового ACL используетсяg:, для всехa:. - Проверьте применённые правила:
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