Рейтинг:0

Centos 7 Samba php:apache Отказано в доступе при перемещении файла с контейнером Docker после перехода на том: z из общего ресурса samba

флаг in

Во-первых, позвольте мне сказать, что chmod 777 даже не работает для этого (хотя я знаю, что это было бы неправильным решением).

Вот ситуация: у меня есть почтовый сервер, принимающий почту. На этом сервере есть cronjob, который запускает сценарий .sh, который перемещает почтовые файлы в общий ресурс samba. На отдельном сервере приложений (где у меня возникла проблема) также есть cronjob, который запускает сценарий .sh, который перемещает эти почтовые файлы из общего ресурса:

#!/бин/ш

если [ "$(ls -A /samba/reports)" ]; тогда
mv /samba/reports/* /home/adam/dmarc/reports/mail
chown adam:adam /home/adam/dmarc/reports/mail/*
chmod 664 /home/adam/dmarc/отчеты/почта/*
фи

Все это, кажется, работает просто отлично. Обратите внимание, что cronjob запускается от имени пользователя root (это crontab пользователя root). Кроме того, каталог «отчеты» монтируется как том внутри контейнера php:apache Docker (-./reports:/var/www/reports:z). Файлы есть и доступны для чтения в контейнере. Однако, когда я использую php (вызывается из скрипта, а не apache), мне отказывают в разрешении на переименование/перемещение файлов. Однако, если я привязываю каждый файл к идентичному файлу с другим именем:

cat theProblemFile > нет проблем

....тогда работает нормально. Владелец/группа и разрешения одинаковы для обоих.

Есть ли что-то в том, что файл был перемещен из общего ресурса Samba, что отличает его? Что здесь происходит? Кроме того, что касается передачи файлов с почтового сервера на сервер приложений, существует ли для этого отраслевой стандарт/лучшая практика/предпочтительный способ?

Спасибо

Рейтинг:2
флаг cz

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

Когда вы создали новый файл, он уже имел правильный контекст SELinux.

Ты можешь использовать восстановитькон чтобы исправить контексты SELinux в затронутых файлах, например:

restorecon -rv <каталог>
флаг in
Спасибо! Можете ли вы порекомендовать хороший способ узнать, что мне следует/нужно знать о SELinux? Я думал, что это может быть связано с SELinux, но getfacl не показал ничего другого.
Michael Hampton avatar
флаг cz
@AdamWinter Вы можете попробовать [документацию Red Hat] (https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/using_selinux/index) для начала.

Ответить или комментировать

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