Администрирование ОС Solaris

Монтирование удаленных файловых систем


Монтирование файловых систем NFS осуществляется практически так же, как и монтирование файловой системы любого другого типа. Рассмотрим, как смонтировать файловую систему машины под управлением Linux, если роль файлового сервера выполняет Solaris (компьютер pxy работает под Linux, компьютер с адресом 192.168.5.33 под Solaris):

root@pxy# mount -t nfs 192.168.5.33:/nfst ./nfst root@pxy# mount /dev/hda1 on / type ext2 (rw) none on /proc type proc (rw) none on /dev/pts type devpts (rw,mode=0620) /dev/hda3 on /usr type ext2 (rw) /dev/hda2 on /var type ext2 (rw) 192.168.5.33:/nfst on /usr/home/filip/nfst type nfs (rw,addr=192.168.5.33)

Удаленная файловая система успешно смонтирована, о чем говорит последняя строка вывода mount.

Попробуем осуществить копирование файла:

root@pxy# cp /etc/mail/aliases /usr/home/filip/nfst/ root@pxy# ls /usr/home/filip/nfst/ aliases root@pxy# ls -l /usr/home/filip/nfst/ total 1 -rw-r--r-- 1 root root 406 Jun 20 22:30 aliases

Файл был записан, как отсюда видно, от имени пользователя root и группы root. На самом деле, в выводе команды ls таится подвох. Ведь команда ls на локальной машине использует для получения соответствия между идентификатором в файловой системе и именем пользователя (группы) локальный файл /etc/passwd. Потенциальная опасность состоит в том, что на удаленном сервере и на локальной машине файлы /etc/passwd окажутся разными. В случае пользователя root это не важно, если только на сервере NFS пользователю root нашей машины разрешено монтировать файловую систему от имени root. В противном случае все файлы, которые локальный root будет записывать на удаленный сервер, будут записываться от имени nobody (или иного имени, если так определено конфигурацией сервера).

root@pxy# ls -ld /usr/home/filip/nfst/ drwxrwxr-x 2 root bin 512 Jun 20 22:30 /usr/home/filip/nfst/

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

192.168.5.33# cat /etc/dfs/dfstab # Place share(1M) commands here for automatic execution # on entering init state 3. # # Issue the command '/etc/init.d/nfs.server start' to run # the NFS daemon processes and the share commands, after # adding the very first entry to this file. # # share [-F fstype] [ -o options] [-d "<text>"] # <pathname> [resource] # .e.g, # share -F nfs -o rw=engineering -d "home dirs" # /export/home2 share -F nfs -o root=pxy.spb.ru /nfst


Здесь, на компьютере 192.168.5.33, управляемом Solaris, разделяется общий каталог /nfst, а с компьютера pxy.spb.ru разрешено работать с этим каталогом от имени root. Следует осторожно раздавать подобные права и в большинстве случаев избегать разделения в сети каталогов с настроечной или секретной информацией.

По команде showmount можно получить список компьютеров, подключенных к серверу NFS:

192.168.5.33# showmount pxy.spb.ru www.spb.ru

Таким образом, на сервере NFS имя хозяина файла совпадает с тем, что мы видели с клиента NFS, а имя группы файла - нет, так как под одним и тем же идентификатором в файлах /etc/group на сервере и на клиенте значатся разные группы. На практике не следует допускать подобных расхождений, чтобы не возникало файлов, угрожающих безопасности системы. Синхронизация файлов passwd и group на сервере и клиентах или использование общей базы NIS помогут избежать путаницы в именах групп и владельцев файлов на сервере и клиенте NFS.

192.168.5.33# pwd /nfst 192.168.5.33# ls -l total 2 -rw-r--r-- 1 root root 406 Июн 20 22:30 aliases

Обратите внимание на одинаковое время создания файла с точки зрения команды ls сервера и клиента. В поле времени указывается время создания, которое записывает туда сервер NFS. Следует синхронизировать не только файлы group и passwd, но и время на сервере NFS и его клиентах, чтобы не было расхождений между клиентом и сервером при выполнении резервного копирования или выяснения "свежести" файлов.


Содержание раздела