Задача: получить доступ к файлам на Window$-машинах локальной сети (или просканить на предмет существования таковых), разрешить доступ Всем пользователям к ресурсам самба (создаем простейшую шару). Решение: утилита Samba посредством сетевого протокола smb (session message block) Ход дейтвий:
Устанавливаем необходимые пакеты (возможно, все или некоторые уже установлены в системе):
# aptitude install samba smbfs smbclient
Приступаем к настройки сервера, для этого редактируем конфигурационный файл самбы /etc/samba/smb.conf Простейшая конфигурация, которая с большим процентом вероятности будет работать в любой системе.
/etc/samba/smb.conf
[global]
workgroup = NTU2
netbios name = debian
server string = xstyle lan file server
security = share
browseable = yes
# шара только для чтения
[share_r]
path = /home/user/share_r
comment = fileshare
readonly = Yes
guestok = Yes
# шара с полным доступом
[share_w]
path = /home/user/share_w
comment = fileshare
public = Yes
create mode = 0777
writable = Yes
guestok = Yes
структура файла: workgroup – это имя вашей сети, должно быть одинаковым для всех компьютеров, как рабочая группа в Windows; netbios name – имя вашего компьютера в сети, как имя компьютера в Windows; server string - описание компьютера, аналог подобного значения в Windows; security - определяет доступ к расшариваемомым каталогам (share/user/server); browseable
- хотите ли вы сделать доступными все подкаталоги рашариевамого
каталога. Этот параметр также можно использовать отдельно для каждого
расшариваемого каталога; path - путь до расшариваемой папки; comment - комментарий; readonly
- только для чтения. Обратите внимание, что Samba может ограничить
права пользователя, но не может расширить права, заданные системой. То
есть если на расшариваемом каталоге не стоят права на запись для всех в
самой системе, Samba не сможет разрешить запись в него сторонним
пользователям. Однако если на каталоге стоят права 777, то задав
параметр readonly = Yes вы сможете ограничить доступ на запись для
пользователей, подключающихся из сети; public - отметка о доступе на чтение всем авторизованным пользователям (в том числе и гостевым, если они определены); create mode - права доступа для созданных файлов; writable - разрешает (no — запрещает) запись в директорию; guestok - разрешение гостевого входа (guest ok = no — гостевой вход запрещен). После завершения конфигурации выполняем команду (автопроверка файла):
$ testparm
Перезагружаем Samba:
# /etc/init.d/samba restart
* Примечание: после загрузки компьютеры не сразу появляются в сети, что связанно с особенностями протокола. Проверяем работоспособность настроенного samba-сервера:
$ smbclient -L localhost Enter xstyle's password: Domain=[NTU2] OS=[Unix] Server=[Samba 3.2.5] Sharename Type Comment --------- ---- ------- user Disk fileshare SharedDocs Disk IPC$ IPC IPC Service (xstyle lan file server) Domain=[NTU2] OS=[Unix] Server=[Samba 3.2.5] Server Comment --------- ------- DEBIAN xstyle lan file server Workgroup Master --------- ------- NTU2
Если наблюдаем список открытых в доступ папок и файлов, значит конфигурация правильная.
Получаем список файлов и папок:
$ smbclient -L ip-addr{NetBIOS-name}
xstyle@lawliet:~$ smbclient -L 192.168.10.231 Enter xstyle's password: Domain=[GODFATHER] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] Sharename Type Comment --------- ---- ------- GTA San Andreas Disk IPC$ IPC Удаленный IPC D$ Disk Стандартный общий ресурс print$ Disk Драйверы принтеров SharedDocs Disk Games Disk PROGI Disk My VIDEOS Disk Принтер2 Printer Microsoft XPS Document Writer Music Disk - - - - - - - (вывод сокращен для экономии места) - - - - - - - Server Comment --------- ------- Workgroup Master --------- -------
Коннектимся к машине, указивая имя пользователя (не обязательно должно совпадать с регистрационным логином в системе):
xstyle@lawliet:~$ smbclient //192.168.10.231/Music -U xstyle Enter xstyle's password: Domain=[GODFATHER] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] smb: \> pwd Current directory is \\192.168.10.231\Music\ smb: \> ls . DR 0 Fri Jan 9 10:58:12 2009 .. DR 0 Fri Jan 9 10:58:12 2009 02. Gym Class Heros - Clothes Off! (Josh Harris Club Mix).mp3 A 12873448 Thu Jan 17 20:25:04 2008 06-Conspiracy Of One 2000 D 0 Mon Oct 13 12:04:02 2008 060. Benassi Bros. - Light.mp3 A 12610019 Tue Mar 15 11:50:00 2005 - - - - - - - (вывод сокращен для экономии места) - - - - - - - 61310 blocks of size 1048576. 5647 blocks available
Скачиваем необходимый файл(-ы):
$ mget{get} filename smb: \> mget "Requiem For A Dream - Marion Barfs.mp3" Get file Requiem For A Dream - Marion Barfs.mp3? y getting file \Requiem For A Dream - Marion Barfs.mp3 of size 3414016 as Requiem For A Dream - Marion Barfs.mp3 (7425,4 kb/s) (average 7425,4 kb/s) smb: \>
Samba cmds:
Команда
Описание
cd [path]
изменить текущий каталог
exit
закрыть соединение с сервером Samba
get [filename]
скопировать указанный файл на локальную машину
help
показать справку
lcd [path]
изменить текущий каталог на локальной машине
ls
получить список файлов в текущем каталоге на сервере Samba
mget [regex]
скопировать файлы, соответствующие шаблону, на локальную машину
mkdir [dirname]
создать новый каталог на сервере Samba
mput [regex]
скопировать файлы, соответствующие шаблону, на сервер Samba
put [filename]
скопировать указанный файл на сервер Samba
rm [filename]
удалить указанные файлы с сервера Samba
* примечание: скобки "[ ]" ставить не надо - это параметры команд