⛱️ Как управлять ACL в Linux

Давайте дальше разбираться с ACL в продолжение мини статьи:-

🚧 ACL Linux с использованием setfacl

Вступление

В этом уроке мы увидим, что такое ACL и как выполнять основные манипуляции с такого рода разрешениями на платформе Linux.

Приведенные ниже инструкции будут работать на любом дистрибутиве Linux.

Я предполагаю, что вы знаете, и вам удобно использовать стандартные дискреционные разрешения ugo / rwx для Linux.

Итак, что такое ACL?

Повторим еще раз 🙂

ACL — это второй уровень дискреционных разрешений, которые могут переопределять стандартные разрешения ugo / rwx.

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

Первое, что вам нужно сделать, если вы хотите использовать преимущества ACL, это убедиться, что файловая система, на которой вы хотите их использовать, была смонтирована с опцией «acl».

Чтобы проверить последнее, вы можете выполнить команду «tune2fs -l», передав раздел в качестве аргумента.

Как вы видите, работает (вывод усеченный):

# tune2fs -l /dev/sda3 

И если быть еще точнее:

Система дает следующий результат в моей системе, показывая, что файловая система в /dev/sda3 имеет среди параметров монтирования по умолчанию также  и  «acl».

Если ваша файловая система не была смонтирована с опцией «acl», вы можете перемонтировать ее, предоставив необходимую опцию:

# mount -o remount -o acl /dev/sda1

Однако обратите внимание, что параметры монтирования, заданные таким образом, не будут постоянными и не сохранятся после перезагрузки.

Если вы хотите получить постоянство в этой настройке, вам нужно изменить параметры монтирования файловой системы в /etc/fstab, назначив опцию «acl» статически.

Еще одна вещь, которая нам нужна, это установить пакет acl.

Этот пакет содержит различные утилиты ACL, такие как программы getfacl и setfacl.

Контрольный пример

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

Сначала мы создадим файл с именем text.cfg и передадим его в качестве аргумента команды getfacl.

Давайте посмотрим, что показывает вывод этой команды:

Для пользователя dummy добавлена запись с указанием назначенных ему разрешений.

Кроме этого, если вы заметили, также появилась запись mask.

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

В этом случае с помощью команды setfacl могут быть назначены только разрешения на чтение и запись.

Конечно, мы можем изменить эту опцию, используя саму программу setfacl:

$ setfacl -m mask:r text.cfg

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

Давайте проверим вывод getfacl сейчас:

$ getfacl text.cfg

Как вы можете видеть, маска была пересчитана и теперь отражает максимальные разрешения, имеющиеся для dummy.

Очевидно, что теперь никакие ранее установленные разрешения не превышают маску, поэтому показывать статус разрешения #effective не нужно.

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

Например, запустив:

$ setfacl -m u:dummy:- text.cfg

мы фактически отказываем всем привилегиям для пользователя dummy на файл text.cfg.

ACL по умолчанию

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

Давайте продемонстрируем это: сначала мы собираемся создать каталог и назначить ему ACL по умолчанию, используя опцию -d:

$ mkdir test && setfacl -d -m u:dummy:rw test

Теперь мы можем проверить вывод getfacl для этого каталога:

$ getfacl test

Разрешения по умолчанию были назначены правильно.

Теперь мы можем проверить их, создав файл внутри директории test и проверив его разрешения, запустив getfacl:

$ touch test/file.cfg && getfacl test/file.cfg

Если вы хотите стереть все установленные ACL, вы всегда можете запустить setfacl с опцией -b.

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

Теперь просто запомните, что если вы хотите удалить все разрешения ACL, назначенные файлу, вам просто нужно запустить setfacl с опцией -b (сокращение от —remove-all).

 

cryptoparty

Cryptography is typically bypassed, not penetrated.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40