Форум русскоязычного сообщества Ubuntu


Автор Тема: Права на чтение/запись по NFS. Ubuntu 16.04  (Прочитано 2432 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ivan-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Права на чтение/запись по NFS. Ubuntu 16.04
« : 31 Августа 2017, 12:58:47 »
Добрый день!

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

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

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

Что написано в exports на gena (192.168.24.90):
Код: (html5) [Выделить]
/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):
Код: (html5) [Выделить]
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

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

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

Спасибо!
« Последнее редактирование: 04 Сентября 2017, 12:47:59 от Azure »

Оффлайн ivan-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Права на чтение/запись по NFS. Ubuntu 16.04
« Ответ #1 : 04 Сентября 2017, 02:05:33 »
Судя по статистике 62 просмотра/0 ответов - либо проблема совсем элементарная и не заслуживает внимания уважаемого сообщества, либо я столкнулся с чем-то очень серьезным...
А может написал совсем уж непонятно ((.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Права на чтение/запись по NFS. Ubuntu 16.04
« Ответ #2 : 04 Сентября 2017, 03:18:07 »
/mnt/disca_3 192.168.1.0/255.255.255.0(rw,async,no_subtree_check,no_root_squash,anonuid=0,anongid=0)
Wars ~.o

Оффлайн ivan-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Права на чтение/запись по NFS. Ubuntu 16.04
« Ответ #3 : 04 Сентября 2017, 10:49:17 »
Код: [Выделить]

/mnt/disca_3 192.168.1.0/255.255.255.0(rw,async,no_subtree_check,no_root_squash,anonuid=0,anongid=0)


Так, насколько я понимаю, все аноны пойдут рутом... не? Это вроде небезопасно..
Anyway, попробовал:

exports
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


((

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Права на чтение/запись по NFS. Ubuntu 16.04
« Ответ #4 : 04 Сентября 2017, 12:58:43 »
Давайте подумаем:
/raid/users/iz/gena - рутовая папка? Почему valera должен иметь к ней доступ?
iz имеет id 1002, у вас в export uid=1000 Что совпадает? Группа? Так у нее нет прав на запись.
Где в fstab указано от какого пользователя подключаться? Вы опции mount.nfs смотрели?
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Права на чтение/запись по NFS. Ubuntu 16.04
« Ответ #5 : 04 Сентября 2017, 17:08:23 »
Цитировать
рутом?
где uid  и gid.
Цитировать
anonuid=0,anongid=0
совсем маленький.
Wars ~.o

Оффлайн ivan-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Права на чтение/запись по NFS. Ubuntu 16.04
« Ответ #6 : 06 Сентября 2017, 02:20:44 »
Цитировать

    рутом?

где uid  и gid.
Цитировать

    anonuid=0,anongid=0

совсем маленький.

честно сказать, не понял обе реплики.

Как я понимаю, no_root_squash означает, что root с удаленной машины получит рутовые права на локальной машине, к которой он обращается.
Если anonuid=0,anongid=0, то анонимные пользователи (кстати, кто это? те, у кого нет совпадающих uid и gid между удаленной машиной и локальной?) с удаленной машины получат uid и gid 0 на локальной, т.е. станут root для локальной машины, т.к. по дефолту uid и gid рута 0. А если еще и all_squash, то все рутами станут. Вроде так, не?
https://help.ubuntu.ru/wiki/nfs
http://www.rhd.ru/docs/manuals/enterprise/RHEL-4-Manual/sysadmin-guide/s1-nfs-export.html
https://www.8host.com/blog/montirovanie-nfs-na-servere-ubuntu-16-04/

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Права на чтение/запись по NFS. Ubuntu 16.04
« Ответ #7 : 06 Сентября 2017, 02:55:25 »
опять любая права, я честно.
Wars ~.o

Оффлайн ivan-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Права на чтение/запись по NFS. Ubuntu 16.04
« Ответ #8 : 06 Сентября 2017, 03:24:02 »
Давайте подумаем:
/raid/users/iz/gena - рутовая папка? Почему valera должен иметь к ней доступ?
эта папка на сервере valera (192.168.24.91) в которую монтируется домашняя папка пользователя iz с сервера gena. Т.е., доступ как бы должен бы иметь.
В каком смысле рутовая? Если я правильно понял, то ответ на вопрос следующий:
drwxr-xr-x  4 iz  ngs        10 авг 30 20:25 gena
ngs@valera:~$ id iz
uid=1002(iz) gid=1002(iz) groups=1002(iz),27(sudo),1000(ngs)

Цитировать
iz имеет id 1002, у вас в export uid=1000 Что совпадает? Группа? Так у нее нет прав на запись.
Наверное тут я не прав, но я понимал всю эту систему с anonuid/anongid и squash'ами так:
при обращении к общей папке пользователь с удаленной машины получает такие же права, как и местный пользователь с таким же uid/gid. Т.е. если iz на имеет uid/gid 1002 на обеих машинах, то он будет иметь одинаковые права доступа к общей папке независимо от того, с какого сервера он к ней обращается. А вот если к шаре обращается пользователь, которого нет на машине, с которой шара (в нашем случае некий другой пользователь с сервера valera обращается к общей папке сервера gena и пользователя с таким uid нет на gena), то такой пользователь считается анонимным и получает uid/gid указанные в опциях anonuid и anongid в exports. Это в случае если не включен all_squash (тогда любой пользователь получит uid и gid указанные в опциях anonuid и anongid) и не говоря про root.
Все не так и я все понял не правильно?

Цитировать
Где в fstab указано от какого пользователя подключаться? Вы опции mount.nfs смотрели?
Чуяло мое сердце, что надо что-то с монтированием делать, но во всех найденных манулах про NFS этот вопрос так или иначе обходился. Наверное тут проблема! честно сказать, я понаделся на defaults, т.к. в менее запутанном случае сработало, поэтому указаний uid/gid в fstab нет.
Попробовал вместо defaults написать uid=1002,gid=1002 - ругается
ngs@valera:~$ sudo mount -a
mount.nfs: an incorrect mount option was specified
попробую сегодня понять как "оформить" это правильно, чтобы не ругалось и проверю помогло ли.

Пользователь добавил сообщение 06 Сентября 2017, 03:24:59:
опять любая права, я честно.

сорри, но я не понимаю о чем вы. Кто "любая" и почему "права"?
« Последнее редактирование: 06 Сентября 2017, 03:26:52 от ivan-z »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Права на чтение/запись по NFS. Ubuntu 16.04
« Ответ #9 : 06 Сентября 2017, 11:06:36 »
при обращении к общей папке пользователь с удаленной машины получает такие же права, как и местный пользователь с таким же uid/gid
Если он подключается по логину и паролю. Однако в опциях монтирования у Вас этого нет == анонимное подключение.
Т.е., доступ как бы должен бы иметь.
В каком смысле рутовая?
Цитата: man mount
Mount options for ntfs
Код: (html5) [Выделить]
...
       uid=value, gid=value and umask=value
              Set the file permission on the  filesystem.   The  umask
              value  is  given  in  octal.   By default, the files are
              owned by root and not readable by somebody else.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн ivan-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Права на чтение/запись по NFS. Ubuntu 16.04
« Ответ #10 : 15 Сентября 2017, 19:36:52 »
Прошу прощения за длительное молчание - работа навалилась...

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

1) опций монтирования uig и gid нет для nfs. Приведенный Azure пример - это для ntfs. Облазил весь 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.


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

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

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

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

Спасибо всем принявшим участие!
« Последнее редактирование: 15 Сентября 2017, 19:50:08 от ivan-z »

 

Страница сгенерирована за 0.067 секунд. Запросов: 25.