В последней статье (Серия RHCSA Часть 6) мы начали объяснять, как настроить и сконфигурировать локальное хранилище системы с использованием parted и ssm.

Мы также обсудили, как создавать и монтировать зашифрованные тома с паролем при загрузке системы. Кроме того, мы предупредили вас об избегании выполнения критических операций управления хранилищем на смонтированных файловых системах. Учитывая это, мы теперь рассмотрим наиболее используемые форматы файловой системы в Red Hat Enterprise Linux 7, а затем перейдем к темам монтирования, использования и размонтирования как вручную, так и автоматически сетевых файловых систем (CIFS и NFS), а также к реализации списков управления доступом для вашей системы.
Предварительные требования
Перед продолжением убедитесь, что у вас есть сервер Samba и сервер NFS (обратите внимание, что NFSv2 больше не поддерживается в RHEL 7).
В этом руководстве мы будем использовать машину с IP 192.168.0.10, на которой оба сервиса работают как серверы, и устройство с RHEL 7 в качестве клиента с IP-адресом 192.168.0.18. Позже в статье мы расскажем вам, какие пакеты нужно установить на клиенте.
Форматы файловой системы в RHEL 7
Начиная с RHEL 7, XFS была введена в качестве основной файловой системы для всех архитектур из-за ее высокой производительности и масштабируемости. В настоящее время она поддерживает максимальный размер файловой системы 500 ТБ согласно последним тестам, проведенным Red Hat и его партнерами на основных оборудованиях.
Кроме того, XFS включает user_xattr (расширенные пользовательские атрибуты) и acl (списки контроля доступа POSIX) в качестве параметров монтирования по умолчанию, в отличие от ext3 или ext4 (ext2 считается устаревшим с момента выпуска RHEL 7), что означает, что вам не нужно явно указывать эти параметры ни в командной строке, ни в /etc/fstab при монтировании файловой системы XFS (если вы хотите отключить эти параметры в этом последнем случае, вам нужно явно использовать no_acl и no_user_xattr).
Имейте в виду, что расширенные пользовательские атрибуты могут быть назначены файлам и каталогам для хранения произвольной дополнительной информации, такой как тип mime, набор символов или кодировка файла, в то время как права доступа для пользовательских атрибутов определяются обычными битами разрешений файла.
Списки контроля доступа
Как и каждый системный администратор, будь то начинающий или эксперт, хорошо знаком с обычными разрешениями на доступ к файлам и каталогам, которые определяют определенные привилегии (чтение, запись и выполнение) для владельца, группы и “мира” (всех остальных). Однако не стесняйтесь обратиться к Части 3 серии RHCSA, если вам нужно освежить память немного.
Однако, поскольку стандартный набор ugo/rwx не позволяет настраивать разные разрешения для разных пользователей, были введены ACL для определения более детальных прав доступа к файлам и каталогам, чем те, которые указаны в обычных разрешениях.
Фактически, разрешения, определенные с помощью ACL, являются надмножеством разрешений, указанных битами разрешений файла. Давайте посмотрим, как все это применяется на практике.
1. Существуют два типа ACL: ACL доступа, которые могут быть применены к конкретному файлу или каталогу, и ACL по умолчанию, которые могут быть применены только к каталогу. Если файлы, содержащиеся в нем, не имеют установленного ACL, они наследуют ACL по умолчанию своего родительского каталога.
2. Для начала ACL можно настроить для каждого пользователя, для группы или для пользователя, не входящего в группу владельца файла.
3. ACLs устанавливаются (и удаляются) с помощью setfacl, используя соответственно опции -m или -x.
Например, давайте создадим группу с именем tecmint и добавим пользователей johndoe и davenull в нее:
# groupadd tecmint # useradd johndoe # useradd davenull # usermod -a -G tecmint johndoe # usermod -a -G tecmint davenull
И давайте проверим, принадлежат ли оба пользователя дополнительной группе tecmint:
# id johndoe # id davenull

Теперь создадим каталог с именем playground в /mnt, и файл с именем testfile.txt внутри. Мы установим владельца группы на tecmint и измените его стандартные разрешения ugo/rwx на 770 (разрешения на чтение, запись и выполнение предоставляются как владельцу файла, так и владельцу группы файла):
# mkdir /mnt/playground # touch /mnt/playground/testfile.txt # chmod 770 /mnt/playground/testfile.txt
Затем смените пользователя на johndoe и davenull, в таком порядке, и запишите в файл:
echo "My name is John Doe" > /mnt/playground/testfile.txt echo "My name is Dave Null" >> /mnt/playground/testfile.txt
Пока все хорошо. Теперь позвольте пользователю gacanepa записать в файл – и операция записи завершится неудачно, что и следовало ожидать.
Но что если нам действительно нужно, чтобы пользователь gacanepa (который не является членом группы tecmint) имел разрешения на запись в /mnt/playground/testfile.txt? Первое, что может прийти вам в голову, это добавить эту учетную запись пользователя в группу tecmint. Но это даст ему разрешения на запись для ВСЕХ файлов, где установлен бит записи для группы, и мы этого не хотим. Мы хотим, чтобы он мог писать только в /mnt/playground/testfile.txt.
# touch /mnt/playground/testfile.txt # chown :tecmint /mnt/playground/testfile.txt # chmod 777 /mnt/playground/testfile.txt # su johndoe $ echo "My name is John Doe" > /mnt/playground/testfile.txt $ su davenull $ echo "My name is Dave Null" >> /mnt/playground/testfile.txt $ su gacanepa $ echo "My name is Gabriel Canepa" >> /mnt/playground/testfile.txt

Дадим пользователю gacanepa права на чтение и запись в файл /mnt/playground/testfile.txt.
Выполните как root,
# setfacl -R -m u:gacanepa:rwx /mnt/playground
и вы успешно добавите ACL, позволяющий gacanepa записывать в тестовый файл. Затем переключитесь на пользователя gacanepa и попробуйте снова записать в файл:
$ echo "My name is Gabriel Canepa" >> /mnt/playground/testfile.txt
Чтобы просмотреть ACL для определенного файла или каталога, используйте getfacl:
# getfacl /mnt/playground/testfile.txt

Чтобы установить ACL по умолчанию для каталога (который будет наследоваться его содержимым, если не перезаписано иначе), добавьте d: перед правилом и укажите каталог вместо имени файла:
# setfacl -m d:o:r /mnt/playground
ACL выше позволит пользователям, не состоящим в группе владельца, иметь доступ на чтение к будущему содержимому каталога /mnt/playground. Обратите внимание на разницу в выводе getfacl /mnt/playground до и после изменения:

Глава 20 в официальном руководстве администратора хранилищ RHEL 7 предоставляет больше примеров использования ACL, и я настоятельно рекомендую вам взглянуть на него и иметь под рукой в качестве справочного материала.
Source:
https://www.tecmint.com/rhcsa-exam-configure-acls-and-mount-nfs-samba-shares/