Я хочу поделиться /share/foo
и /share/bar
и т.д. через NFS на CentOS.
Я столкнулся с эта общая проблема:
mount.nfs4: mounting 192.168.101.254:/share/foo failed, reason given by server: No such file or directory
Решение, похоже, состоит в том, чтобы экспортировать родительский каталог /share
с участием fsid=0
а затем монтировать команды на клиенте, используя пути, относящиеся к /share
, т.е.
файл экспорта сервера:
/share 192.160.0.0/16(rw,fsid=0)
/share/foo 192.160.0.0/16(ro)
/share/bar 192.160.0.0/16(ro)
клиент fstab:
192.168.101.254:/foo /share/foo nfs4 intr
Но если я хочу экспортировать это с сервера:
/share/private 192.168.101.123(ro)
тогда это не будет доступно на машинах, кроме 192.168.101.123
потому что многие адреса имеют доступ к /share
и его подкаталоги?
Если да, то это неприемлемая дыра в безопасности. Если нет, то как я могу гарантировать, что ни один клиент не сможет получить доступ? /share/private
несмотря на то, что они могут получить доступ /share
?
Таким образом, мне нужен сервер для экспорта /share/foo
, /share/bar
, и /share/private
к разные клиентские машины через nfs4.
Лучший способ справиться с этим - использовать привязку монтирования: создать папку только для экспорта NFS:
mkdir /srv/nfs
а затем добавьте это в свой / etc / fstab:
/share/foo /srv/nfs/foo none defaults,bind 0 0
/share/foo /srv/nfs/bar none defaults,bind 0 0
/ Etc / exports точно такой же, за исключением того, что / share заменен на / srv / nfs. Также убедитесь и назначьте уникальные идентификаторы файловых систем для записей foo и bar в / etc / exports.