Назад | Перейти на главную страницу

Почему NFS не распознает новый UID?

У меня два сервера под управлением RHEL6. у меня есть корень доступ к обоим. Главный сервер, который я буду называть server, это сервер базы данных. Сервер приложений, который я буду называть client, монтирует каталог из server через NFS.

Есть пользователь, appuser, на обоих client и server. Тем не мение, appuserUID пользователя включен client является 502. appuserUID на server является 506.

Оба пользователя нуждаются в возможности чтения и записи в общей папке NFS. Чтобы облегчить это, я сделал акцию, принадлежащую appuser на server.

Бег id appuser на каждой урожайности: uid=506(appuser).

Конечно, client не признает это право собственности, поскольку appuser имеет другой идентификатор на client. Итак, я сделал следующее:

Теперь, когда я иду посмотреть на общий ресурс NFS из client стороны, я вижу, что он принадлежит 502. 502 это СТАРЫЙ идентификатор для appuser на клиенте. Я не могу сменить владельца общей папки NFS с client, так как это том, который физически находится на server.

Мне нужно убедиться, что общий ресурс NFS показывает право собственности на appuser от обоих server и client.

Какой шаг я пропустил после смены appuser id на клиенте?

НОТА: Я не перезагружался client (или что-нибудь еще.)

ХОРОШО! У меня есть его. Нашел его на Bing после многих попыток. Все еще не уверен, ЧТО именно проблема решена из двух возможных. Но вот они.

В Интернете есть информация о том, что с NFS v4 могут возникнуть проблемы с правами владения клиентом. Я не знаю, правда ли это, и мне все равно. У кого-то есть что-то, что они называют решением. Итак, я выполнил инструкции, чтобы заставить клиента смонтировать диск как NFS версии 3. Итак, первое, что я сделал, это изменил права доступа к строке монтирования в / etc / fstab следующим образом:

rw,hard,intr

к этому:

rw,hard,intr,vers=3

Кроме того, я запустил демон nfs на клиенте только потому, что кто-то сказал это сделать:

service nfs start

Затем, поскольку я следовал некоторым устаревшим инструкциям, я проверил, не portmap служба работала на клиенте:

service portmap status

и был встречен:

portmap: unrecognized service

Затем я обнаружил, что portmap теперь свернут в rpcbind. Так:

service rpcbind status

И я увидел:

rpcbind dead but pid file exists

Затем:

[root@myserver customers]# service rpcbind restart
Stopping rpcbind:                                          [FAILED]
Starting rpcbind:                                          [  OK  ]

Затем я проверил право собственности на долю NFS, и это было ПРАВИЛЬНО!

id appuser скорее всего покажет вам, что оболочка все еще видит старый UID для пользователя. Выйдите из системы и войдите снова.

Владение файлом сохраняется с идентификаторами пользователей. Когда вы просматривали эти файлы и видели, что они принадлежат appuser до изменения 502 -> 506 они фактически принадлежали пользователю с идентификатором 502 (ls -n подтвердит). Это не изменилось.

Поэтому, если вы хотите увидеть appuser как владелец, вам придется сменить владельца файлов с 502 на 506. И вам, возможно, придется это сделать. на сервере если у вас нет разрешений на клиенте.

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