Skip to content

9 Способы разделения прав на ресурсы Атрибуты фай

9 Способы разделения прав на ресурсы. Атрибуты файлов. Выполнение от имени суперпользователя

Способы разделения прав на ресурсы

3 основных способа разделения прав:

  • Традиционные права доступа (Owner, Group, Other)

    • Ownre - владелец файла/директории
    • Group - группа пользователей с определёнными правами
    • Other - все остальные пользователи
    • Типы прав:
      • r (read) - чтение
      • w (write) - запись
      • x (execute) - выполнение
    Пример прав доступа:
    -rwxr-xr--
    Первый символ: - для обычного файла, d для директории
    Следующие 3 символа: права владельца
    Следующие 3 символа (вторая тройка): права группы
    Последние 3 символа (третья тройка): права всех остальных
    
  • Списки контроля доступа (ACL, Access Control Lists), позволяют назначать права доступа для отдельных пользователей и групп

    • getfacl file.txt - просмотр ACL
    • setfacl -m u:username:rwx file.txt - установка ACL
    • setfacl -x u:username file.txt - удаление ACL
  • Контекст безопасности SELinux (Security-Enhanced Linux) представляет механизм для управления доступом на основе политики безопасности
    • ls -Z file.txt - просмотр контекста безопасности
    • chcon -t httpd_sys_content_t file.txt - изменение контекста безопасности (устанавливается контекст безопасности httpd_sys_content_t для файла file.txt)
    • semanage fcontext -a -t httpd_sys_content_t ‘/web(/.*)?’ - добавление правила, устанавливающего тип контекста безопасности httpd_sys_content_t для всех файлов и директорий в /web

Атрибуты файлов

Атрибуты файлов предоставляют дополнительный настройки, помимо стандартных прав доступа. Атрибуты файлов можно просматривать и изменять с помощью chattr и lsattr

Основные атрибуты:

  • a (append only) - файл может быть только дополняем
  • i (immutable) - файл является неизменяемым
  • d (no dump) - файл не будет включён в резервные копии, создаваемые утилитой dump
  • e (extent format) - файл использует формат extent для хранения данных (только для файловых систем ext4)
  • j (data journaling) - файл использует журналирование данных (только для файловых систем ext3 и ext4)
  • s (secure deletion) - файл будет безопасно удалён (данные будут перезаписаны нулями)
  • u (undelete) - файл может быть восстановлен после удаления (поддерживается не всеми файловыми системами)

lsattr file.txt - вывод атрибутов файла

chattr +a file.txt - добавление атрибута

chattr -i file.txt - удаление атрибута

chattr =a file.txt - установка атрибута

Уточнение: все манипуляции с атрибутами происходят от sudo

Выполнение от имени суперпользователя

Существует несколько способов выполнения команд от имени суперпользователя:

  • sudo - позволяет выполнить команду от имени пользователя root или другого пользователя, если это разрешено в файле /etc/sudoers; sudo visudo - редактирование файла /etc/sudoers; user ALL=(ALL) ALL - строка в sudoers, разрешающая пользователю user выполнять все команды от имени суперпользователя
  • su - позволяет переключиться на другого пользователя (по умолчанию на суперпользователя); su -c “command” - выполняет команду от имени суперпользователя и возвращается к исходному пользователю
  • прямой вход в систему под суперпользователем при помощи login, однако это крайне небезопасно из-за возможных случайных ошибочных действий