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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

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

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

Оффлайн ivan-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Добрый день!

В 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):
Код: HTML
  1. /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):
Код: HTML
  1. 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, 13:47:59 от Azure »

Оффлайн ivan-z

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

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 13995
  • Я не слышу.
    • Просмотр профиля
Re: Права на чтение/запись по NFS. Ubuntu 16.04
« Ответ #2 : 04 Сентябрь 2017, 04: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)
RuTorrent
3D
Душинckий B.B.

Оффлайн ivan-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Права на чтение/запись по NFS. Ubuntu 16.04
« Ответ #3 : 04 Сентябрь 2017, 11: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

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

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 13995
  • Я не слышу.
    • Просмотр профиля
Re: Права на чтение/запись по NFS. Ubuntu 16.04
« Ответ #5 : 04 Сентябрь 2017, 18:08:23 »
Цитировать
рутом?
где uid  и gid.
Цитировать
anonuid=0,anongid=0
совсем маленький.
RuTorrent
3D
Душинckий B.B.

Оффлайн ivan-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Права на чтение/запись по NFS. Ubuntu 16.04
« Ответ #6 : 06 Сентябрь 2017, 03: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, то все рутами станут. Вроде так, не?
http://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

  • Старожил
  • *
  • Сообщений: 13995
  • Я не слышу.
    • Просмотр профиля
Re: Права на чтение/запись по NFS. Ubuntu 16.04
« Ответ #7 : 06 Сентябрь 2017, 03:55:25 »
опять любая права, я честно.
RuTorrent
3D
Душинckий B.B.

Оффлайн ivan-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Права на чтение/запись по NFS. Ubuntu 16.04
« Ответ #8 : 06 Сентябрь 2017, 04: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, 04:24:59:
опять любая права, я честно.

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

Оффлайн Azure

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

Оффлайн ivan-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Права на чтение/запись по NFS. Ubuntu 16.04
« Ответ #10 : 15 Сентябрь 2017, 20: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, 20:50:08 от ivan-z »

 

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