LINUX.ORG.RU

Права на чтение/запись по NFS. Ubuntu 16.04

 ,


0

1

Добрый день!

В Ubuntu новичок, гуглил проблему довольно интесивно, но, по-видимому, недостаток базовых знания сказывается, в итоге паззл не собирается в голове и проблема не решается. Если я что-то пропустил и где-то все уже разжевано, ткните туда, плз. А если нет, то разжуйте, плз, для чайников. И я, и последуюущие чайники будут веcьма признательны )).

Собственно, о чем все это. Есть два сервера (gena (192.168.24.90) и valera (192.168.24.91)) под Ubuntu 16.04. На обоих есть пользователь iz и одноименная пользовательская папка. uid пользователя одинаковый на обеих машинах. Пользователь в группе sudo (если что, на всяк случай сообщаю). Сама задача: по NFS смонтировать каждую пользовательскую папку (хоум директорию) на каждый сервер так, чтобы пользователь имел права на чтение/запись на любом сервере, независимо от того, где он авторизован.В идеале, каждая папка монтируется внутрь пользовательской. Т.е.: на valera в папку ~/gena/ монтируется пользовательская папка с gena, а на gena в папку ~/valera/ монтируется пользовательская папка с valera.

Начал решать последовательно, попробовав пока смонтировать пользовательскую папку с gena на valera. В итоге папка и файлы на valera видны, но запись невозможна.

Что написано в exports на gena (192.168.24.90):

/raid/users/iz 192.168.24.91/255.255.255.0(rw,sync,insecure,nohide,no_root_squash,no_all_squash,anonuid=1000,anongid=1000,no_subtree_check)

Что написано в fstab на valera (192.168.24.91):

192.168.24.90:/raid/users/iz /raid/users/iz/gena nfs defaults 0 2

Свойства пользователей:

iz@gena:~$ id iz
uid=1002(iz) gid=1002(iz) groups=1002(iz),1000(ngs)

iz@valera:/home$ id iz
uid=1002(iz) gid=1002(iz) groups=1002(iz),27(sudo),1000(ngs)

По моим соображениям, т.к. включена опция no_all_squash для экпорта, то обращающийся к шаренному ресурсу пользователь с valera обрабатывается по uid и, т.к. uid совпадает, то пользователь должен получить все те же права, что и в случае когда он обращается к своей папке с «родной» машины (с gena, в данном случае).

И для чтения это работает (читаем файл, созданный пользователем на gena):

iz@valera:/raid/users/iz/gena$ cat izgena.txt
dkfjhskhdlj

Однако, при попытке создания файла пользователем с valera ничего не получается:

iz@valera:/raid/users/iz/gena$ touch izvalera.tst
touch: cannot touch 'izvalera.tst': Permission denied

Содержимое общей папки как его видно с valera:

iz@valera:/raid/users/iz/gena$ ls -l
total 25
-rw-r--r-- 1 iz ngs 8980 апр 20  2016 examples.desktop
-rw-rw-r-- 1 iz iz    13 авг 30 18:11 izgena.txt

Содержимое общей папки как его видно с gena:

iz@gena:~$ ls -l
total 25
-rw-r--r-- 1 iz ngs 8980 апр 20  2016 examples.desktop
-rw-rw-r-- 1 iz iz    13 авг 30 18:11 izgena.txt

Права на обшую папку: valera (до монтирования папки с gena в нее) drwxr-xr-x 2 iz ngs 2 авг 31 12:47 gena valera (после монтирования) drwxr-xr-x 4 iz ngs 10 авг 30 20:25 gena

Так выглядит экспортируемая папка (iz) на gena:

iz@gena:/raid/users$ ls -l
total 19
-rw-rw-r-- 1 ngs ngs 320 авг 17 20:44 create_users.sh
drwxr-xr-x 4 iz  ngs  10 авг 30 20:25 iz

Помогите, пожалуйста, понять, что не так (почему нет прав на запись?). Были мысли про опции монтирования, но вроде бы там все ок... Не знаю уже куда смотреть.

И второй момент: решаетма ли в принципе вся задача целиком? Или все «закольцуется»?

Спасибо!


Вот здесь у Вас ошибка:

/raid/users/iz 192.168.24.91/255.255.255.0

Должно быть или 192.168.24.91/255.255.255.255, или 192.168.24.91/32, или вообще без маски - 192.168.24.91.

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

Мм... не понимаю. Ведь папка монтируется, содержимое с другой машины (.24.91) видно и файлы можно читать, как я писал. Проблема с редактированием, т.е. с доступом к редактированию. Если маска кривая, то просто не монтировалось бы, мне кажется..

ivan-z ()
Ответ на: комментарий от Serge10

попробовал все варианты:

/raid/users/iz 192.168.24.91/255.255.255.255(rw,sync,insecure,nohide,no_root_squash,no_all_squash,anonuid=1000,anongid=1000,no_subtree_check)
/raid/users/iz 192.168.24.91/32(rw,sync,insecure,nohide,no_root_squash,no_all_squash,anonuid=1000,anongid=1000,no_subtree_check)
/raid/users/iz 192.168.24.91(rw,sync,insecure,nohide,no_root_squash,no_all_squash,anonuid=1000,anongid=1000,no_subtree_check)

Также по совету с forum.ubuntu попробовал так:

/raid/users/iz 192.168.24.91/255.255.255.0(rw,async,no_root_squash,anonuid=0,anongid=0,no_subtree_check)

Результат един:

iz@valera:/raid/users/iz/gena$ touch izvalera.txt
touch: cannot touch 'izvalera.txt': Permission denied

При этом чтение есть...

Между попытками, меняя exports делал sudo exportfs -a, а на проверяемой машине делал unmount, потом mount -a и далее заново заходил под учеткой iz

((

ivan-z ()

не решается толком...

Прошу прощения за длительное молчание - работа навалилась...

Продвинулся не очень, но что-то выяснил.

1) опций монтирования uig и gid нет для nfs. Это предлагалось на forum.ubuntu. Облазил весь man для mount и nfs.mount - нету таких опций для nfs, потому и ругалось.

2) в итоге, как я понимаю, все сводится к опциям при экспорте шары.

3) на обоих сереврах (gena (..24.90) и valera (..24.91)) есть административный пользователь ngs. Поиграв с различными опциями экспорта и режимами доступа и наборами owner:group для экпортируемой папки я нашел работающий вариант:

свойства экспортируемой папки на gena:

drwxrwxr-x 4 iz  ngs  12 сен 15 18:41 iz

exports на gena:

/raid/users/iz 192.168.24.91(rw,no_subtree_check,sync,nohide)

fstab на valera:

192.168.24.90:/raid/users/iz /raid/users/iz/gena nfs4 defaults 0 2

вид папки в которую производится монтирование до монтирования:

drwxr-xr-x  2 root root         2 авг 31 12:47 gena

после:

drwxrwxr-x  4 iz  ngs        12 сен 15 18:41 gena

В таком сетапе все работает (на шару права 775 и минимум опций в exports без указаний про сквош и anonuid/anongid), т.е. при авторизации под пользователем iz с удаленного сервера (valera (.24.91)) можно в смонтированной папке создать файл. Но также файл можно создать и под пользователем ngs, чего исходно не хотелось... но хоть так...

4) такое впечатление, что опции экспорта как-то некорректно работают. Отталкиваясь от результата пункта 3 я попробовал добавить в экспорт all_squash (я так и не понял, по дефолту он есть или нет) и явно указать uid/gid для анонимного пользователя равный uid/gid пользоватля iz на обоих серверах.

exports:

/raid/users/iz 192.168.24.91(rw,no_subtree_check,sync,nohide,anongid=1002,anonuid=1002,all_squash)

в fstab все то же, разумеется.

Результат: работает ровно также: можно создать файл зайдя в шару с valera (24.91) под обоими пользователями (iz и ngs).

При этом, в обоих вариантах (п.3 и п.4) owner созданного файла, независимо от пользователя под которым он создается - ngs.

iz@valera:/raid/users/iz$ ls -l ./gena/
total 28
-rwxr-xr-x 1 iz  ngs 8980 апр 20  2016 examples.desktop
-rwxr-xr-x 1 iz  iz    13 авг 30 18:11 izgena.txt
-rw-rw-r-- 1 ngs ngs    0 сен 15 19:17 izval100.tst
-rw-rw-r-- 1 ngs ngs    0 сен 15 19:19 izval101.tst
-rwxr-xr-x 1 ngs ngs    0 сен 15 18:43 izval.tst
-rw-rw-r-- 1 ngs ngs    0 сен 15 19:17 ngsval100.tst
-rw-rw-r-- 1 ngs ngs    0 сен 15 19:19 ngsval101.tst
-rwxr-xr-x 1 ngs ngs    0 сен 15 18:43 ngsval.tst

ngsval100.tst и izval100.tst - файлы созданные под пользователями ngs и iz, соответственно, при настройках по п.3. Файлы *101.tst. - созданы при настройках по п.4.

NOTE: указание nfs или nfs4 в fstab никак не влияло на результат.

NOTE_2: забыл с самого начала упомянуть, каюсь. Все это происходит на томах, управляемых zfs (raidz2). Не уверен, что это важно, но, может все дело в этом?

Вобщем, что делать далее - не знаю. Работает не так, как хотелось, но сил и времени более нет. При отсутствии ответов в этой ветке далее, продолжать писать сюда не буду, ибо вряд ли что-то придумаю еще.

Спасибо всем принявшим участие!

ivan-z ()
Ответ на: не решается толком... от ivan-z

если при всем при этом (пункт 4) поменять group экспортируемой папки на iz - все ломается и Permission denied при попытке создать файл независимо от пользователя под которым это производится.

Т.е. явно что-то не так с процессом сопоставления пользователя с удаленной машины с пользователем на локальной... Или что-то «выше» этого имеет другие настройки и не дает ничего сделать

ivan-z ()

Для реализации твоих хотелок курить autofs и, скорее всего, zfs acl.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.