Сетевое монтирование NFS: установите владельца для определенной учетной записи - PullRequest
7 голосов
/ 05 января 2012

Ладно, я серьезно запутался в этом, поэтому очень полезные ответы будут полезны, особенно если они сделают весь этот монтажный материал менее волшебным и более предсказуемым.

Я пытаюсь смонтировать свой Drobo-FS NAS с nfs, чтобы получить лучшую производительность, чем с cifs.

В drobo запущен какой-то урезанный дистрибутив linux.

Внутри / etc / fstab на клиентском компьютере (Ubuntu с IP: 192.168.1.150)

# Mount Drobo
192.168.1.100:/mnt/DroboFS/Shares/public /media/drobonfs nfs rw,soft,proto=tcp,users 0 0

Я установил unfsd на drobo и получил доступ через ssh.Это файл экспорта на сервере (Drobo-FS с IP 192.168.1.100):

# Allow access for client machine
/mnt/DroboFS/Shares 192.168.1.150(rw,no_root_squash)

Монтирование работает нормально, за исключением того, что все смонтированные файлы принадлежат пользователю root с большинством установленных прав доступа к файлам.744. Разрешения файла, показанные в монтировании на клиенте, соответствуют фактическим разрешениям на сервере.Например:

client$ sudo chmod 123 /media/drobonfs/somefile
client$ ls -l /media/drobonfs/somefile
---x-w--wx 1 root root 0 2012-01-04 14:15 /media/drobonfs/somefile

drobo$ ls -l /mnt/DroboFS/Shares/public/somefile
---x-w--wx    1 root     root            0 Jan  4 14:15 /mnt/DroboFS/Shares/public/somefile

Написание sudo перед каждой командой - это перетаскивание, и я хочу понять, что происходит, так что я могу сделать, чтобы смонтировать его на клиентском компьютере с установленным владельцем / группойна мой аккаунт вместо root?

Ответы [ 3 ]

5 голосов
/ 04 января 2015

При подключении общего ресурса идентификатор пользователя (UID) хост-системы сопоставляется с идентификатором пользователя (UID) клиента.

На клиенте сопоставленный пользователь (на основе идентификатора пользователя) станетвладелец смонтированного общего ресурса.

Ваша проблема вызвана тем, что хост использует другой UID, а не клиент.

Это можно решить, определив файл /etc/nfs.map:

/etc/nfs.map

Это будет выглядеть следующим образом:

# remote local gid 500 1000 # drobo client uid 500 2003 # drobo client

Поэтому при использовании NFS необходимо убедиться, что UID / GID совпадает между пользователямина хосте и клиенте.Пожалуйста, прочитайте также следующую статью: http://www.kernelcrash.com/blog/nfs-uidgid-mapping/2007/09/10/

Еще один отличный способ решения этой проблемы - изучить UID на хосте и в клиентской системе, посмотрев этот файл /etc/passwd в обеих системах.

или набрав:

id tom

измените UID с помощью:

usermod -u 10000 tom

Удачи!

1 голос
/ 05 января 2012

Похоже, это должно работать в экспорте на Drobo:

/ mnt / DroboFS / Shares 192.168.1.150 (rw, all_squash, anonuid = NNN)

где NNN - ваш числовой идентификатор пользователя на клиенте.

0 голосов
/ 14 января 2014

Изменить / etc / exports на:

/mnt/DroboFS/Shares 192.168.1.150(rw,insecure)

и затем на сервере NFS выполните:

$ sudo exportfs -a

Теперь, когда вы монтируете каталог как пользователь без полномочий root на клиенте NFS, он будет монтироваться с соответствующим владельцем и группой.

...