Я пытаюсь создать несколько общих ресурсов 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
д. Это маскирует их, что упрощает создание резервных копий)