Для того чтобы воспользоваться файловой системой NFS, должны быть выполнены два условия:
1. поддержка файловой системы NFS должна быть встроена в ядро Linux или быть доступна в виде модуля;
2. в сети должен иметься компьютер, на котором работает NFS-сервер. При этом в файлах настройки этого NFS-сервера должно быть указано, что вашему компьютеру разрешен доступ по NFS.
Пусть NFS-сервер работает на компьютере с именем serv1, причем для доступа по NFS открыт каталог /common, и вы хотите смонтировать его в каталог /mnt/serv1 своей файловой системы. Для этого надо (имея права пользователя root) выполнить команду
[root]# mount -o rsize=1024,wsize=1024 serv1:/common /mnt/serv1
Если в ответ вы получите сообщение, содержащее слова "Permission denied", значит вам не разрешен доступ на сервер.
Размонтировать файловую систему, смонтированную таким образом, можно обычной командой
[root]# umount /mnt/serv1.
Конечно, если вам постоянно необходимо монтировать каталог /common с сервера serv1, то лучше добавить в файл /etc/fstab строку следующего вида:
serv1:/common /mnt/serv1 nfs rsize=1024,wsize=1024 0 0
Это обычный формат строки файла /etc/fstab:
device mountpoint fs-type options dump fsckorder
Подробнее о выборе опций монтирования файловой системы NFS вы можете прочитать в NFS-HOWTO (этот документ имеется в русском переводе, см. [П15.7]).
13.5. Подключение к Windows-сети
Я наверняка не ошибусь, если буду утверждать, что большинство компьютеров в вашей локальной сети работают под управлением ОС Windows. В таком случае к тем ресурсам этих компьютеров, которые «отданы» в общее пользование, проще всего подключаться, используя пакет Samba.
13.5.1 Что такое Samba
Samba - это набор приложений, позволяющих ОС Linux взаимодействовать с сетью, построенной на основе MS Windows, причем как в роли клиента сетей MS Windows, так и в роли сервера. Пакет Samba реализует протокол Server Message Block (SMB), который иногда называют также Session Message Block (SMB), протоколом NetBIOS или протоколом LanManager. В этом разделе мы рассмотрим только работу клиентских программ этого пакета, а именно smbclient, smbmount и smbumount. Если вы не найдете этих программ на своем компьютере, то установите пакет Samba (например, на дистрибутивном компакт-диске с Black Cat 6.02 имелся файл samba-client-2.0.5a-2bc.i386.rpm, возможно у вас окажется другая версия).
Программа smbclient предоставляет пользователю FTP-подобный интерфейс для переноса файлов с компьютеров, работающих под ОС Windows (или с компьютеров, на которых запущен сервер Samba). По сравнению с FTP smbclient имеет то преимущество, что не требует, чтобы на удаленном компьютере, работающем под Windows, был запущен специальная серверная программа, поскольку Windows поддерживает NetBIOS по умолчанию. Там только должен быть открыт доступ к какому-либо каталогу из сети. Если же вы хотите через Samba получить доступ к UNIX-серверу, то на нем, естественно, должна быть запущена серверная часть пакета Samba.
Итак, предположим, что в вашей сети имеется компьютер с именем PC1, работающий под ОС Windows, и на нем имеется каталог, открытый для доступа из сети, которому присвоено имя ресурса PUBLIC (напомним, что в ОС Windows регистр символов не имеет значения).
Для начала дайте команду
[root]# smbclient -L pc1
для того чтобы увидеть доступные из сети ресурсы компьютера PC1. Если компьютер PC1 работает под управлением Windows NT, то надо сразу указать имя пользователя, который имеет права доступа к компьютеру:
[root]# smbclient -U user -L pc1
и в ответ на запрос программы ввести пароль этого пользователя, иначе вы не увидите даже списка открытых ресурсов.
В ответ на такой запрос вы получите примерно следующую информацию:
Domain=[WORKGROUP] OS=[Windows NT 4.0] Server=[NT LAN Manager 4.0]
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Remote Admin
public Disk
C$ Disk Default share
IPC$ IPC Remote IPC
G Disk
Server Comment
--------- -------
PC2 Samba 1.9.15p8
PC5
PC25 Samba 1.9.15p8
PC1
Обратите внимание на то, что вслед за строкой Server Comment перечисляются другие SMB-сервера в сети с доступными ресурсами.
Для того чтобы получить доступ к ресурсу на удаленном компьютере, надо дать команду следующего вида:
[user]$ /usr/sbin/smbclient servicename -U user [password]
где servicename - это имя машины и ресурса, которые должны бы вообще-то иметь вид \\pc1\public, но из-за ограничений оболочки каждый слэш надо удваивать, поэтому команда принимает следующий вид:
[user]$ /usr/sbin/smbclient \\\\PC1\\public -U user mypasswd
(в той версии Samba, которая стоит у меня, прекрасно работают и обратные слэши, которые к тому же не надо удваивать:
[user]$ /usr/sbin/smbclient //PC1/public -U user mypasswd
скорее всего и у вас будет то же самое).
Указывать имя пользователя в опции необходимо только в том случае, если оно не совпадает с именем пользователя, от имени которого вы запустили программу smbclient. Естественно, что пароль необходим только в том случае, если доступ к ресурсу защищен паролем.