Подключить nfs при запуске от имени конкретного пользователя и разрешить отключение?

Я использую:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.2 LTS
Release:    20.04
Codename:   focal

$ mate-about --version
MATE Desktop Environment 1.24.0

... как клиент NFS.

У меня на сервере есть общий ресурс nfs4; моя запись в / etc / fstab на клиенте выглядит следующим образом:

172.16.0.5:/mydata /media/user/mydata_nfs nfs4 nosuid,nodev,nofail,x-gvfs-show,rw,relatime,user,noauto,uhelper=udisks2 0 0

Я вручную создал / media / user / mydata_nfs , который при запуске имеет следующие разрешения:

$ ls -la /media/user/
total 20
drwxr-x---+ 5 root          root          4096 Jul 25 15:56 .
drwxr-xr-x  3 root          root          4096 Jul 19 18:43 ..
...
drwxr-xr-x  2 user          user          4096 Jul 25 12:11 mydata_nfs

Приведенная выше запись fstab позволяет не монтировать общий ресурс при запуске, и поэтому мне нужно вручную щелкнуть в графическом интерфейсе "проводника файлов" (здесь caja ), чтобы сделать это; однако, как только общий ресурс смонтирован, права собственности (и временная метка) меняются:

$ ls -la /media/user/
total 20
drwxr-x---+ 5 root          root          4096 Jul 25 15:56 .
drwxr-xr-x  3 root          root          4096 Jul 19 18:43 ..
...
drwxrwxrwx  6 root          root          4096 Jul 29 06:15 mydata_nfs

На сервере NFS no_root_squash включен; насколько я понимаю, в этом случае UID / GID от клиентского пользователя распространяется на сервер, и поскольку на сервере у меня также есть пользователь с uid: gid 1000: 1000 (как на клиенте), это отлично работает для меня (когда я создаю файлы и т. д. внутри общего ресурса из командной строки на клиенте, право собственности пользователя сохраняется на общем ресурсе) - за исключением точки монтирования на клиенте, принадлежащей пользователю root (что вызывает у меня проблемы: некоторые программы, установленные с помощью snap , даже не отображают общий ресурс как каталог).

Также - даже с приведенной выше строкой fstab (которая требует, чтобы я смонтировал вручную), когда я пытаюсь размонтировать из графического интерфейса, я не могу и получаю диалоговое окно с:

Unable to unmount mydata_nfs
Error finding object for block device 0:56

Итак, что я хотел бы есть:

  • Общий ресурс NFS, который будет автоматически монтироваться при запуске - с пользователем , владеющим общим ресурсом
  • Разрешить пользователю отключать общий ресурс из графического интерфейса пользователя

Возможно ли это вообще - и что была бы правильная строка fstab для этого?


Обратите внимание, что параметр uid fstab (который в противном случае выполняет такое сопоставление для ntfs) здесь не работает - syslog будет жаловаться:

Jul 29 07:03:49 mypc mount[1148]: mount.nfs4: an incorrect mount option was specified
Jul 29 07:03:49 mypc kernel: [   17.179641] nfs4: Unknown parameter 'uid'
Jul 29 07:03:49 mypc systemd[1]: media-user-mydata_nfs.mount: Mount process exited, code=exited, status=32/n/a
Jul 29 07:03:49 mypc systemd[1]: media-user-mydata_nfs.mount: Failed with result 'exit-code'.
Jul 29 07:03:49 mypc systemd[1]: Failed to mount /media/user/mydata_nfs.

Также allow_other - неизвестный параметр для NFS.

0
задан 29 July 2021 в 09:06

1 ответ

Хорошо, я пошел немного дальше, вот что я пробовал:

После того, как / media / user / mydata_nfs был смонтирован вручную (из графического интерфейса caja ), и появилось как принадлежащее root (как в OP), я сделал:

sudo chown user:user /media/user/mydata_nfs

... и действительно, это действительно изменило владение, которое, как я ожидал, будет временным (только для текущего сеанса) вначале. Поскольку я не могу размонтировать из графического интерфейса, я перезагрузился, а затем при следующей загрузке снова смонтировал раздел вручную (из caja GUI). Я был весьма удивлен, увидев, что это запомнилось, поэтому теперь в листинге у меня есть:

$ ls -la /media/user/
total 20
drwxr-x---+ 5 root          root          4096 Jul 25 15:56 .
drwxr-xr-x  3 root          root          4096 Jul 19 18:43 ..
...
drwxrwxrwx  6 user          user          4096 Jul 29 08:05 mydata_nfs

Итак, по какой-то причине эта смена владельца смонтированного раздела NFS сохраняется - что хорошо, поскольку соответствует моему варианту использования.

Затем я просто удалил noauto из записи / etc / fstab - и теперь у меня есть раздел, смонтированный при загрузке с отображением пользователя как владелец - именно этого я и хочу.

Однако оказывается, что этого недостаточно, чтобы установить программное обеспечение с помощью snap , чтобы использовать его - как отмечено в Приложение Snap не видит файлы из другого раздела :

Снимки обычно ограничены. По умолчанию снимки не могут получить доступ только к своим собственным доступным для записи областям, но они могут получать разрешения через интерфейсы.Существует два интерфейса, которые обеспечивают возможность доступа к файлам сверх значений по умолчанию: интерфейс home и интерфейс съемных носителей . ...

В этом случае у меня сработало монтирование с привязкой, как было сказано в этом посте:

$ mkdir ~/mydata_nfs
$ sudo mount --bind /media/user/mydata_nfs ~/mydata_nfs

... а затем указание программы snap для чтения / записи файлов в ~ / mydata_nfs .


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

0
ответ дан 20 August 2021 в 10:31

Другие вопросы по тегам:

Похожие вопросы: