Читать интересную книгу Linux для пользователя - Виктор Костромин

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 101 102 103 104 105 106 107 108 109 ... 149

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 - это имя машины и ресурса, которые должны бы вообще-то иметь вид \pc1public, но из-за ограничений оболочки каждый слэш надо удваивать, поэтому команда принимает следующий вид:

[user]$ /usr/sbin/smbclient \\PC1\public -U user mypasswd

(в той версии Samba, которая стоит у меня, прекрасно работают и обратные слэши, которые к тому же не надо удваивать:

[user]$ /usr/sbin/smbclient //PC1/public -U user mypasswd

скорее всего и у вас будет то же самое).

Указывать имя пользователя в опции необходимо только в том случае, если оно не совпадает с именем пользователя, от имени которого вы запустили программу smbclient. Естественно, что пароль необходим только в том случае, если доступ к ресурсу защищен паролем.

Если доступ к ресурсу дан, вы получите приглашение программы:

Server time is Sat Mar 11 15:58:27 2000

Domain=[WORKGROUP] OS=[Windows NT 4.0] Server=[NT LAN Manager 4.0]

smb: ›

В ответ на это приглашение вы можете вводить одну из следующих встроенных команд программы smbclient (этот перечень вы можете получить, введя команду h или ?:

smb: > h

ls          dir      du          lcd        cd

pwd         get      mget        put        mput

rename      more     mask        del        open

rm          mkdir    md          rmdir      rd

prompt      recurse  translate   lowercase  print

printmode   queue    cancel      quit       q

exit        newer    archive     tar        blocksize

tarmode     setmode  help        ?          !

13.5.2 Монтирование файловых систем с помощью Samba

Как видите, команды эти во многом похожи на команды ftp-клиента и работа с программой smbclient не очень удобна. Но в пакет samba-client-2.0.5a-2bc.i386.rpm входят еще 2 программы, которые предоставляют некоторые дополнительные удобства. Эти программы называются smbmount и smbumount. С помощью команды smbmount можно смонтировать сетевой ресурс к локальной структуре каталогов, наподобие того, как монтируются файлы на гибком диске. Формат команды таков:

[user]$ /usr/sbin/smbmount //PC1/public /mnt/pc1 -U 123 -W 456'

(в этом примере сетевой ресурс монтируется в локальный каталог /mnt/pc1, причем владельцем каталога объявляется пользователь 123 и группа 456). При необходимости нужно будет ввести пароль пользователя (тот же, по которому вы получали доступ к ресурсу в команде smbclient).

Команда smbumount позволяет обычным пользователям размонтировать файловую систему, смонтированную командой smbmount (пользователь root может воспользоваться обычной командой umount. Формат команды (используется название точки монтирования из того же примера):

[user]$ /usr/sbin/smbumount /mnt/pc1

Если после монтирования сетевого ресурса запустить программу Midnight Commander и перейти в каталог /mnt/pc1, то вы увидите файлы каталога public на компьютере PC1. Думаю, вы согласитесь с тем, что теперь с ними работать будет значительно проще, чем через smbclient.

Затруднения

Если что-то не получается, то проделайте следующее:

1. Убедитесь, что между двумя компьютерами имеется связь по сети, для чего дайте команду ping IP-adress с вашего компьютера на тот компьютер, к которому вы хотите получить доступ.

2. Если такая связь есть, проверьте работу DNS, для чего дайте ту же команду ping, но уже с именем удаленного компьютера: ping RemoteName.

3. Если вы подключаетесь к общему ресурсу компьютера, работающего под Windows 95/98, то этого должно быть достаточно; если же вы подключаетесь к Windows NT или 2000, то надо проверить имя пользователя и домена, с которыми ваш компьютер обращается к NT, для чего лучше всего просмотреть журнал событий (аудит входа в систему) на удаленном компьютере; если потребуется, то задать имя пользователя и имя домена (последнее задается в файле /etc/smb.conf).

13.6. Подключение к серверу Novell Netware

Для того чтобы подключаться к серверу Novell, необходимо установить пакет ncpfs. NCPFS - это файловая система, которая понимает протокол NCP (NetWare Core Protocol) фирмы Novell. Другими словами, пакет ncpfs - это клиент сети Netware для Linux. Протокол NCP играет в мире Novell ту же роль, какую в мире TCP/IP играет протокол NFS.

Пока что пакет ncpfs обеспечивает только работу с Novell Netware 3.x и выше (но не 2.x) и не поддерживает доступ к NDS, так что для работы с серверами версии 4.x необходимо, чтобы на сервере была установлена эмуляция bindery.

Прежде, чем заниматься инсталляцией пакета ncpfs, следует убедиться, что ваше ядро поддерживает протоколы IPX и NCP. Вначале загляните в файл /var/log/dmesg и поищите там строки следующего вида:

NET4: Linux IPX 0.44 for NET4.0

IPX Portions Copyright (c) 1995 Caldera, Inc.

IPX Portions Copyright (c) 2000 Conectiva, Inc.

Если строк, напоминающих эти, не найдется, то ваше ядро не имеет поддержки IPX и вам придется его перекомпилировать. При компиляции ядра (на этапе выполнения команды make config) нужно на вопрос:

The IPX protocol (CONFIG_IPX) [N/y/m/?]

ответить либо " y ”, либо " m ”. На следующий вопрос (о поддержке full internal net) вы можете ответить отрицательно (если не хотите превратить свой Linux-компьютер в полноценный Novell-сервер).

Поддержка протокола SPX в ядре не требуется (если речь идет только о клиентской части), но требуется поддержка протокола NCP (надо ответить утвердительно на вопрос "NCP file system support”).

Естественно, что должна также быть обеспечена поддержка сетевых средств вообще и настроен интерфейс сетевой платы (см. разд. 13.2).

Если у вас уже была установлена предыдущая версия пакета ncpfs и вы просто обновляете инсталляцию, то до выполнения процедуры установки надо выполнить (все, что вы будете дальше делать, - надо делать, имея права пользователя root) команду

[root]# umount -v -a -tncpfs

по которой размонтируются все ранее смонтированные через ncpfs ресурсы.

Проверить, установлены ли пакеты ipxutils и ncpfs можно с помощью команд

[root]# rpm -q ipxutils

ipxutils-2.2.0.18-3

[root]# rpm -q ncpfs

ncpfs-2.2.0.18-3

Номера версий могут отличаться. Если упомянутые пакеты не установлены - установите (найти их можно в каталоге RPMS инсталляционного диска). Например, на дистрибутивном диске ASPLinux 7.1 нашлась версия 2.2.0.18-3 пакета ncpfs в виде файла ncpfs-2.2.0.18-3.i386.rpm, и пакет ipxutils той же версии, так что установка была выполнена следующим образом:

1 ... 101 102 103 104 105 106 107 108 109 ... 149
На этом сайте Вы можете читать книги онлайн бесплатно русская версия Linux для пользователя - Виктор Костромин.
Книги, аналогичгные Linux для пользователя - Виктор Костромин

Оставить комментарий