Доступ до спільного доступу до NFS - у дозволі відмовлено


1

Редагував, як ситуація трохи змінилася.

Я намагаюся поділитися каталогом на своєму пристрої NAS (WD Mybook WE) з NFS на іншій машині моєї локальної мережі. Каталог на пристрої NAS виглядає так:

drwxr-x---   15 git      git          4096 Nov 17 01:05 git/

Ідентифікатор користувача gitна пристрої NAS такий:

[root@myhost DataVolume]# id git
uid=505(git) gid=505(git)

Я грав з багатьма різними параметрами у /etc/exportsфайлі, і ось що я зараз там отримав:

/DataVolume/git 192.168.0.20(async,rw,no_root_squash)

На стороні клієнта у мене є користувач gitі група gitз однаковими ідентифікаторами, щоб відповідати тим, на сервері.

user@myclient:~$ id git
uid=505(git) gid=505(git) groups=505(git)

Я монтую каталог за допомогою:

sudo mount myhost:/DataVolume/git -t nfs git/

і змонтований каталог виглядає так:

drwxr-x--- 15 git    git       4096 Nov 17 01:05 git

Після цих кроків я можу отримати доступ до цього каталогу від клієнта з користувачем root з дозволом r / w. Але користувач gitна клієнті все ще не може cdпотрапити в цей каталог. gitКористувач має один і той же ідентифікатор користувача і GID на обох пристроях і , як ви можете побачити каталог належить користувачеві.

Заздалегідь дякую за будь-яку допомогу.

Відповіді:


2

Перевірте, що каталог фактично експортується за допомогою no_root_squash:

grep git /proc/fs/nfs/exports

У вас включений SELinux на клієнті чи сервері? Якщо це так, спробуйте відключити його (або встановіть політику на permissive), а потім перезапустіть nfsdі повторно почніть частку.

Що про це говорять ваші журнали (клієнт та сервер)?

Редагувати:

Ви бачите кріплення / експорт під час запуску showmount -a serverта showmount -e serverна клієнті?

Чи отримуєте ви ready and waitingвідповіді під час виконання наступних трьох команд на клієнті?

  • rpcinfo -T udp server nfs
  • rpcinfo -T udp server mountd
  • rpcinfo -T udp server nlockmgr

Через / proc / fs / nfs / export я підтвердив, що no_root_squash увімкнено. / var / log / nfs на сервері порожній, а в / var / log / messages говорить аутентифікований запит на встановлення від клієнта, нічого іншого.
rgngl

Крім того, sestatus немає на сервері, тому я припускаю, що немає встановлення SELinux.
rgngl

@rgngl Дивіться оновлену відповідь.
Ansgar Wiechers

Привіт, ситуація трохи змінилася. Я оновив своє запитання. Тепер у мене є клієнтський доступ, коли я входив як root. Але з gitкористувачем я все-таки отримую в дозволі відхилену помилку.
rgngl

Ви можете спробувати no_all_squash (no_root_squash не має значення - root вже має доступ). Крім того, як root на клієнті, ви можете спробувати "chown git.git git". Крім того, додавання унікального "fsid =" до кожного експорту є важливим у багатьох середовищах. Значення не потрібно бути дорівнює нулю, просто переконайтеся , що всі є унікальними (наприклад , перший експорт FSID = 10, другий експорт FSID = 20 і т.д.)
киваю

1

Використання fsid = 0 в опціях експорту може допомогти отримати доступ до файлів і каталогів без дозволу читання для інших. Дивіться - http://softpanorama.net/Net/Linux_networking/Suse_networking/suse_nfs.shtml


Або змінити fsid на що-небудь інше, крім root, якщо вам потрібні нижчі дозволи
GuySoft

0

Слід перевірити аналог для отримання додаткової інформації про те, чому ви отримуєте помилку забороненого доступу. Виконайте наступну команду, щоб перевірити, які файли журналу нещодавно відредаговані, а потім перевірте останні рядки цих файлів.

ls -latr / var / log /

У мене колись була така ж проблема з NFS, все здавалося, що все налаштовано правильно, але що б я не робив, мені завжди була помилка «відмовлено сервером під час монтажу xxx». Журнали показали помилку "Незаконний порт", і я вирішив її, додавши опцію "незахищений" у файл експорту, тобто:

/ DataVolume / git 192.168.0.20 (async, rw, no_root_squash, no_subtree_check, небезпечно)

Спробуйте це і подивіться, чи наблизить вас.


Я не отримую жодних помилок під час роботи монтажу, здається, він добре працює. З папки журналу я бачу лише messagesоновлення файлу. В ньому йдеться про те, що автентифікація кріплення пройшла успішно.
rgngl

О, вибачте, я повністю зрозумів вашу проблему. Я зазвичай монтую з параметром "-o rw, soft", можливо, ви можете спробувати це?
yzfr1
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.