LINUX.ORG.RU

nfs-папка: чтобы одна машина и читала, и писала. А другие машины — чтобы только читали.

 


0

1

Я хочу на 2-х разных машинах запустить 2 версии сайта: машина а) -- продовская версия сайта, машина б) -- версия сайта для разработки. Соответственно, на серверах а) и б) сейчас разные пользователи.

Задача: чтобы продовский сервер а) мог загружать картинки в папку uploads и вообще иметь полный доступ к файлам. А сервер б) – чтобы мог только читать файлы из папки uploads.

На сайт загружаются картинки в папку uploads – я хочу сделать отдельный линуксовый сервер в) -- для хранения картинок, и сделать папку uploads сетевой.

Читаю инструкции в интернете: назначить владельцем папки uploads юзера:группу nobody:nogroup. Так как в папке уже были картинки, то я выполнил команду chown -R nobody:nogroup uploads, и установил права на папку chmod 757 uploads .

Потом на сервере а) я просто примонтировал папку uploads. И записал в нее новый файл. Файл записался от пользователя и группы, под которым я зашел на сервер а). Ну, оно и понятно: я ж для всех разрешил запись в папку uploads командной chmod 757 uploads.

Как правильно сделать то, что я задумал?

Допустим, я хочу, чтобы сервер а) записывал в папку uploads файлы от юзера nobody:nogroup, и чтобы только этот юзер и мог писать в папку uploads.

Тогда я смог бы просто монтировать папку uploads на сервер б), и там другой юзер не мог бы в нее писать.

Не, про опции в файле /etc/exports я знаю, если что. Там мы можем указать, что папка только для чтения или для чтения/записи.

Короче, как правильно решить мою задачу? (надеюсь, понятно, что я хочу?).

Короче, как правильно решить мою задачу? (надеюсь, понятно, что я хочу?).

концептуально вы делаете «не правильно»

Задача: чтобы продовский сервер а) мог загружать картинки в папку uploads и вообще иметь полный доступ к файлам. А сервер б) – чтобы мог только читать файлы из папки uploads.

на «проде» монтируете nfs как обычно

на сервере «б» монтируете nfs как read-only mount -t nfs -o ro

gagarin0
()
Ответ на: комментарий от gagarin0

Хорошо. А какого владельца и группу назначить для папки uploads (которую я вынес на отдельный сервер в) ) ?

На каждом сервере – свои пользователи. Всего сервера 3:

а) -- продовская версия сайта

б) -- тестовая версия сайта

в) -- сервер с папкой uploads

А то я примонтировал папку uploads с полным доступом к серверу а), а владелец папки uploadsnobody:nogroup. И только владелец и может писать в папку uploads, а юзер с сервера б) – не может писать новые файлы в папку uploads.

truebin
() автор топика
Последнее исправление: truebin (всего исправлений: 1)
Ответ на: комментарий от gagarin0

Хорошо, я понял. Мне просто непонятно, какие тогда изначально назначить владельца:группу на папку uploads на сервере в), учитывая, что в папке uploads уже есть картинки.

truebin
() автор топика
Ответ на: комментарий от truebin

Ты вообще зря так упираешься в пользователя. NFS вообще не про это. По сути, там всего два варианта root и nobody. Если ставишь опцию squash_root, то владельцем на сервере должен быть nobody:nobody. А если не ставишь, то root:root. Первый вариант предпочтительнее, ибо безопаснее. Тебе просто надо поставить /etc/exports ro для сервера чтения и rw для сервера чтения-записи, а юзер и права на файлы просто должны позволять читать-писать.

usermod
()
Последнее исправление: usermod (всего исправлений: 1)

а) мог загружать картинки в папку uploads и вообще иметь полный доступ к файлам. А сервер б) – чтобы мог только читать файлы из папки uploads.

man exports

Не, про опции в файле /etc/exports я знаю, если что. Там мы можем указать, что папка только для чтения или для чтения/записи.

И для каждого клиента отдельно

назначить владельцем папки uploads юзера:группу nobody:nogroup

nfs4 acl

router ★★★★★
()
Ответ на: комментарий от gagarin0

на сервере «б» монтируете nfs как read-only mount -t nfs -o ro

А если сервер б это дев или тест, то приходит веселый разработчик, и в какой-то момент что-то идет не так после -o remount,rw

Ну man exports же. Одному серверу rw, остальным ro

router ★★★★★
()
Ответ на: комментарий от router

Зачем нужна гранулярная настройка прав, которую дает nfs4 acl, если без ldap/kerberos nfs-сервер будет доверять uid/gid с удаленного nfs-клиента?

Что она даст в плане безопасности nfs-сервера?

MirandaUser2
()