Общие ресурсы NFS — один IP-адрес для чтения/записи, остальные — только для чтения

Общие ресурсы NFS — один IP-адрес для чтения/записи, остальные — только для чтения

Я пытаюсь создать несколько общих ресурсов NFS для своей домашней сети, чтобы мне было легче управлять своим NAS. В настоящее время я использую Samba для домашнего хозяйства, но NFS для меня быстрее, так как я использую Ubuntu (все остальные, кроме NAS, работают под управлением Windows).

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

Мой файл /etc/exports выглядит так (для примера одной строки — есть несколько подобных с тем же результатом):

/mnt/TVShows    matt-pc.*(rw,sync,no_root_squash,no_subtree_check) 192.168.1.0/25(ro,sync,no_root_squash,no_subtree_check)

matt-pc.1 и matt-pc.2 оба определены в файле hosts NAS. Но независимо от этого, жесткое кодирование IP-адресов также не работает.

Это тоже не работает:

/mnt/TVShows    matt-pc.*(rw,sync,no_root_squash,no_subtree_check) *(ro,sync,no_root_squash,no_subtree_check)

Я по-прежнему могу монтировать только в режиме чтения.

Диски смонтированы как Read/Write на NAS, и мои настройки общих ресурсов Samba работают нормально (я могу принудительно войти в систему под своей учетной записью на NAS и иметь возможность читать и записывать файлы).

Если я отформатирую общие ресурсы следующим образом:

/mnt/TVShows    matt-pc.*(rw,sync,no_root_squash,no_subtree_check)

Я просто получаю ошибки прав доступа при попытке монтирования на клиентской машине (моей машине).

Вот как я монтирую на клиентской машине:

nas.local:/mnt/TVShows  /mnt/NFS/TVShows nfs auto,noatime,nolock,bg,nfsvers=4,intr,tcp,actimeo=1800 0 0

Могу ли я это сделать?

решение1

Для экспорта /mnt/TVShowsиз rwв nasи matt-pcво roвсе остальные вы можете написать это в `/etc/exports:

#
/mnt/TVShows matt-pc(rw,no_subtree_check) 192.168.1.0/24(ro)

Обратите внимание, что порядок важен. Первое имя машины/IP/сеть, которые соответствуют, используются при экспорте на одну машину, поэтому сначала укажите наиболее конкретную машину, а затем наиболее общую. Не заканчивайте на catch all, который дает слишком много прав.

Также помните, что каждый набор опций присущ следующему, поэтому вам нужно быть конкретным только в первом. Остальное — это только изменения предыдущих настроек. Также избегайте мнений о наборах, которые вам не нужны. (И всегда читайте соответствующие man(1) страницы и документацию в /usr/share/doc/"package name"/)

Также проверьте, как правильно разрешаются используемые вами имена. Чтобы использовать это, используйте команду getent(1). Например:

$ getent hosts matt-pc

И то, как это работает, зависит от resolv.confи /etc/hosts (или на самом деле от содержимого /etc/nsswitch.conf).

Для монтирования выполните следующие действия с каждой машины:

/etc/fstab
# ro, that is this line in all but matt-pc
nas.local:/mnt/TVShows  /mnt/NFS/TVShows nfs auto,ro,noatime,nolock,bg,nfsvers=4,intr,tcp 0 0
# rw, that is this line in only matt-pc
nas:/mnt/TVShows  /mnt/NFS/TVShows nfs auto,rw,noatime,nfsvers=4,tcp 0 0

Однако обратите внимание: не используйте больше аргументов, чем вам действительно нужно.

(Да, я предпочитаю, чтобы диски на серверах были смонтированы в /srv/, так как это для ресурсов сервера и /mnt/больше для временного монтирования. Обычно я использую /srv/web/, и т /srv/files/music/. /srv/files/videoд. Это маскирует их, что упрощает создание резервных копий)

Связанный контент