Могу ли я получить разъяснения о том, как правильно настроить общие папки samba на Linux-сервере RHEL/CENTOS 7 с принудительным применением selinux.

SELinux требует, чтобы файлы имели расширенный атрибут для определения типа файла. Политика управляет доступом демонов к этим файлам. Если вы хотите поделиться файлами, отличными от домашних каталогов, эти файлы должны быть помечены как samba_share_t. Поэтому, если вы создали специальный каталог /var/eng, вам нужно будет пометить каталог с помощью инструмента chcon.

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

chcon -t samba_share_t /data


semanage fcontext -a -t samba_share_t /data

     or

semanage fcontext -a -t samba_share_t /data*
  1. Всегда ли мне нужно делать chcon -t samba_share_t /folder, чтобы заставить его работать, или я могу просто сделать semanage?
  2. Нужно ли мне chcon -t samba_share_t только папку, которая должна быть указана в /etc/samba/smb.conf, или мне нужно пометить каждую вложенную папку и файл в общей папке samba?
  3. Аналогично с semanage fcontext -a -t samba_share_t, я применяю это только к одной папке, указанной как общий ресурс в /etc/samba/smb.conf, или это требует применения к каждому файлу и подпапке в общей папке samba, и если так как это делается?
0
Community 11 Июн 2020 в 17:16

1 ответ

semanage fcontext изменяет базу данных контекста файла. База данных запрашивается при изменении метки файловой системы и при восстановлении контекста файла с помощью restorecon. При добавлении записи новый контекст не применяется. Изменения, сделанные с помощью chcon, применяются напрямую, но не добавляются в базу данных контекста файла и не сохраняются restorecon или перемаркировка файловой системы.

Когда вы добавляете новый путь к базе данных контекста файла с помощью semanage fcontext, проще всего применить новый контекст с помощью restorecon. Возможно, вы захотите использовать такой шаблон, как /data(/.*)?, чтобы также включать файлы и подкаталоги с тем же правилом. Затем restorecon можно использовать с рекурсивной опцией для переименования существующих файлов.

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

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

Для получения более подробной информации и примеров вы можете проверить документация RHEL.

1
sebasth 4 Май 2020 в 13:18
Благодаря. поэтому, если я самба раздаю /data, а затем что я должен конкретно сделать, чтобы обеспечить переименование файловой системы и отсутствие ошибок var/log/messages или audit.log и предупреждения? Я просто хочу, чтобы samba работала без проблем и без ошибок/предупреждений с применением selinux. Моя папка data представляет собой смонтированный 8-дисковый массив raid-5 с 5 ТБ материала.
 – 
ron
4 Май 2020 в 03:46
My /data — это том raid-5, смонтированный под SLES 11.4. Я обновил свой сервер до RHEL 7.8 и перемонтировал /data, и samba поделилась этим обратно, по большей части успешно с selinux в качестве разрешающего, но видя много предупреждений.
 – 
ron
4 Май 2020 в 03:47
Если я сделаю что-то вроде /data(/.*)?, добавит ли это какую-либо запись в любую контекстную базу данных для всего под /data? Моим данным более 10 лет с миллионами файлов. Так что я напуган и не уверен, и не хочу все испортить.
 – 
ron
4 Май 2020 в 03:52
Если /data является отдельным разделом, вы можете смонтировать его с помощью контекстное монтирование, чтобы установить контекст файла во время монтирования для всех файлов. Это позволит избежать изменений в файловой системе.
 – 
sebasth
4 Май 2020 в 13:14