Как установить списки контроля доступа (ACL) и дисковые квоты для пользователей и групп -- LFCS часть 16

Как установить списки контроля доступа (ACL) и дисковые квоты для пользователей и групп — LFCS часть 16

Рубрики:

LFCS

Метки:

, ,

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

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

 

 

Проверка совместимости файловой системы с ACL

Чтобы ваши файловые системы поддерживали ACL, вы должны убедиться, что они были установлены с использованием опции acl. Для этого мы будем использовать tune2fs для файловых систем ext2/3/4, как указано ниже. Замените /dev/sda1 на устройство или файловую систему, которую вы хотите проверить:

 

Примечание. С XFS списки контроля доступа поддерживаются из базовой настройки.

В следующей файловой системе ext4 мы видим, что ACL был включены для /dev/xvda2:

 

Check-ACL-Enabled-on-Linux-Filesystem

 

 

Если приведенная выше команда не показывает, что файловая система смонтирована с поддержкой ACL, это, скорее всего, связано с параметром noacl, присутствующим в /etc/fstab.

В этом случае удалите его, отмонтируйте файловую систему, затем смонтируйте её или просто перезагрузите свою систему после сохранения изменений в /etc/fstab.

 

 

Знакомство с ACL в Linux

Чтобы проиллюстрировать, как работают ACL, мы будем использовать группу, которая называется developers, и добавим пользователей walterwhite и saulgoodman (да, я поклонник Breaking Bad!):

 

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

 

Find-User-ID-in-Linux

 

 

Теперь создадим каталог с именем test в /mnt и файл acl.txt внутри /mnt/test/acl.txt.

Затем мы установим владельца группы developers и рекурсивно изменим его разрешения ugo/rwx по умолчанию на 770 (таким образом, предоставляя разрешения на чтение, запись и выполнение, предоставленные как обычному пользователю, так и владельцу группы файла):

 

Как и ожидалось, вы можете получить доступ в /mnt/test/acl.txt как walterwhite или saulgoodman:

 

Verify-ACL-Rules-on-Users

 

 

Пока все идет нормально. Однако вскоре мы встретимся с проблемой, когда нам нужно предоставить доступ на запись /mnt/test/acl.txt для другого пользователя, которого нет в группе developers.

Стандартные разрешения ugo/rwx требуют, чтобы новый пользователь был добавлен в группу developers, но это дало бы им одинаковые права доступа ко всем объектам, принадлежащим группе. Именно тут и понадобиться ACL.

 

 

Настройка ACL в Linux

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

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

Дадим пользователю gacanepa разрешение на чтение и запись в /mnt/test/acl.txt. Прежде чем это сделать, давайте посмотрим на текущие настройки ACL в этом каталоге:

 

Затем измените ACL в файле, используйте u:<имя пользователя>:rw, чтобы указать разрешения на чтение/запись:

 

И снова запустите getfacl в файле, чтобы провести сравнения. На следующем скриншоте показаны «До» и «После»:

 

Set-ACL-on-Linux-Users

 

 

Затем нам нужно будет предоставить другим пользователям разрешения на работу в каталоге /mnt/test:

 

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

Теперь пользователь gacanepa сможет производить запись файлов. Перейдите к этой учетной записи и выполните следующую команду для подтверждения:

 

Чтобы установить ACL по умолчанию в каталог (который его содержимое наследует), добавьте d: перед правилом и укажите каталог вместо имени файла:

 

Правило ACL описанное выше позволит пользователям, не входящим в группу developers, получить доступ для чтения к будущему содержимому каталога /mnt/test. Обратите внимание на разницу в выводе getfacl /mnt/test до и после изменений:

Set-Default-ACL-to-Linux-Directory

 

 

Чтобы удалить определенный ACL, замените -m в приведенных выше командах на -x. Например:

 

Кроме того, вы также можете использовать опцию -b, чтобы удалить ВСЕ ACL за одну итерацию:

 

Дополнительные сведения и примеры использования списков ACL смотрите в главе 10, пункт 2, руководства по безопасности openSUSE.

 

 

Установка квот Linux-диска для пользователей и файловых систем

Место хранения — еще один ресурс, который необходимо тщательно использовать и контролировать. Для этого могут быть установлены квоты на основе файловой системы, как для отдельных пользователей, так и для групп пользователей.

Таким образом, вы можете ввести ограничение на использование диска для данного пользователя или конкретной группы. Вы можете быть уверены, что ваши диски не будут заполнены до отказа небрежным (или безымянным) пользователем.

Первое, что вы должны сделать, чтобы включить квоты в файловой системе, – это установить её с помощью usrquota или grpquota (для пользовательских и групповых квот, соответственно) в /etc/fstab.

Например, давайте включим пользовательские квоты для /dev/vg00/vol_backups и групповые квоты для /dev/vg00/vol_projects.

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

 

Отключите и перемонтируйте обе файловые системы:

 

Затем проверьте, что параметры usrquota и grpquota присутствуют на выводе mount:

 

Check-Linux-User-Quota-and-Group-Quota

 

 

Наконец, запустите следующие команды для инициализации и включения квот:

 

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

 

 

Настройка квот для диска в Linux

Начнем с установки ACL в /home/backups для пользователя gacanepa, что даст ему права на чтение, запись и выполнение в этом каталоге:

 

Затем,

 

Мы сделаем нижний предел = 900 и верхний предел = 1000 блоков (1024 байта/блок * 1000 блоков = 1024000 байтов = 1 МБ) на использование дискового пространства.

Мы также можем установить ограничение от 20 до 25 в качестве нижней и верхней границы на количество файлов, которые этот пользователь может создать.

Вышеупомянутая команда запустит текстовый редактор ($EDITOR) с временным файлом, где мы можем установить указанные выше ограничения:

Linux-Disk-Quota-For-User

 

 

Эти настройки вызовут предупреждение для пользователя gacanepa, когда он достигнет уровня 900-блока или 20-файла для периода 7 дней (по умолчанию).

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

Чтобы проверить, давайте попробуем пользователю gacanepa создать пустой файл размером 2 МБ с именем test1 внутри /home/backups:

 

Verify-Linux-User-Quota-on-Disk

 

 

Как вы можете увидеть, файл операции записи завершился неудачно из-за превышения квоты диска. Так как только первые 1000 КБ записываются на диск, результат в этом случае скорее всего будет поврежденным файлом.

Аналогичным образом, вы можете создать ACL для групп developers, чтобы предоставить членам этой группы rwx доступ к /home/projects:

 

И установите ограничения квоты:

 

Так же, как раньше мы делали для пользователя gacanepa.

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

 

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

Чтобы сообщить о квотах, вы можете использовать квоту -u [user] или quota -g [group] для быстрого просмотра или repquota -v [/path/to/filesystem] для более подробного и удобно отформатированного отчета.

Конечно, вы можете заменить [user], [group] и [/path/to/filesystem] на определенные имена пользователей и групп и имя конкретной файловой системы, которую вы хотите проверить.

 

Итоги

В этой статье мы объяснили, как установить списки контроля доступа и дисковые квоты для пользователей и групп. Используя оба варианта, вы сможете более эффективно управлять разрешениями и дисками.

Если вы хотите узнать больше о квотах, вы можете обратиться к Quota Mini-HowTo в документации по проектам Linux.

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

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

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасностиполный курс по кибербезопасности от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

LFCS

Метки:

, ,

Больше похожих постов

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

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

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Поиск по сайту
Лучшее
Популярное
Рубрики
Меню