Доступ к файлам Linux с помощью FACL

Вопрос или проблема

ОС: Oracle Linux 9.4

Я получаю ошибку прав доступа FACL для файлов в /var/www/html

[hussain@mybalancer ~]$ ls -l /var/www/html/index.html
ls: невозможно получить доступ к '/var/www/html/index.html': Доступ запрещен
[hussain@mybalancer ~]$ sudo ls -l /var/www/html/index.html
-rw-rw-r--+ 1 hussain builddeployers 1029 Nov  7  2023 /var/www/html/index.html
[hussain@mybalancer ~]$ sudo getfacl /var/www/html/index.html
getfacl: Удаление ведущего "https://serverfault.com/" из абсолютных имен путей
# файл: var/www/html/index.html
# владелец: hussain
# группа: builddeployers
user::rw-
group::rwx                      #эффективно:rw-
group:builddeployers:rw-
mask::rw-
other::r--

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

getenforce показывает, что SELinux находится в отключенном состоянии.

Как я могу отключить эти примененные FACL?

Ответ или решение

Доступ к файлам Linux с использованием FACL

Ваша ситуация с проблемой доступа к файлу /var/www/html/index.html на системе Oracle Linux 9.4 является интересным примером взаимодействия систем управления доступом, таких как ACL (Access Control Lists). Давайте разберёмся подробнее с вашими проблемами.

Анализ проблемы

Согласно предоставленной информации, вы столкнулись с ошибкой доступа, даже будучи владельцем файла. Рассмотрим вывод команды getfacl, которая показывает, какие именно ограничения действуют на файл:

# file: var/www/html/index.html
# owner: hussain
# group: builddeployers
user::rw-
group::rwx                      #effective:rw-
group:builddeployers:rw-
mask::rw-
other::r--

Из вывода видно следующее:

  1. Права владельца (user::rw-) – вы, как владелец, имеете право читать и записывать файл.
  2. Права группы (group::rwx) – группа builddeployers имеет полные права на файл.
  3. Маска (mask::rw-) – эта маска ограничивает права для групп и других пользователей.
  4. Права других пользователей (other::r--) – все остальные пользователи могут только читать файл.

Основная причина вашей проблемы заключается в том, что права доступа были назначены с помощью ACL, и вы сталкиваетесь с ограничением маски, которая явно не разрешает вам доступ к файлу.

Как отключить FACL

Если вы хотите отключить ACL для конкретного файла или директории, вы можете использовать команду setfacl. Чтобы удалить ACL и вернуть стандартные Unix права доступа, выполните следующие действия:

  1. Удалите ACL для файла:

    sudo setfacl -b /var/www/html/index.html

    Эта команда уберёт все FACL, примененные к файлу, возвращая к стандартному поведению UNIX.

  2. Проверьте новое состояние файла:
    После удаления ACL, вы можете снова проверить права доступа:

    getfacl /var/www/html/index.html

    Если всё прошло успешно, вы должны увидеть, что дополнительные записи ACL отсутствуют.

  3. Проверьте стандартные права доступа:
    Используйте команду ls -l, чтобы убедиться, что у вас теперь есть необходимые права доступа:

    ls -l /var/www/html/index.html
  4. Если требуется, настройте стандартные права доступа:
    Если вы хотите настроить стандартные права доступа Unix для группы и других пользователей:

    sudo chmod 644 /var/www/html/index.html

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

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...