Samba


Samba — это эффективный способ не только организовать взаимодействие компьютеров под управлением Windows и Linux, но и в сетях, состоящих только из Linux-машин он позволяет быстро организовать общий доступ к ресурсам. Файл конфигурации Samba может достигать огромной длины и учитывать множество параметров, однако в большинстве случаев достаточно гораздо меньшего количества настроек.

Если мы хотим и расшаривать сами и иметь доступ к файлам на других компьютерах, то необходимо установить три пакета:

sudo aptitude install samba smbclient smbfs

Создадим резервную копию /etc/samba/smb.conf:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup

Теперь откроем файл /etc/samba/smb.conf для редактирования:

sudo nano /etc/samba/smb.conf

Очищаем и вставляем примерно следующее:

[global]
workgroup = home
netbios name = linux--server
server string = linux_file_server
security = user
browseable = yes

[download]
path = /home/download
comment = download
readonly = No

[torrent]
path = /home/torrent
comment = torrent
readonly = No

[hdisk]
path = /home/virtdiver/hdisk
comment = hdisk_250G
readonly = No

workgroup – это имя сети, должно быть одинаковым для всех компьютеров.
netbios name – устанавливает NetBIOS имя, по которому будет доступен сервер Самба. По умолчанию используется первая часть доменного имени компьютера.
server string — описание компьютера, аналог подобного значения в Windows.
security — определяет доступ к расшариваемым каталогам.

security = USER - клиент должен сначала произвести вход с существующим именем пользователя и паролем. Заметьте, что имя запрошенного ресурса не будет послано серверу до тех пор, пока сервер не аутентифицирует клиента. Именно поэтому гостевые учетки не работают в режиме USER, не позволяя серверу преобразовывать неопознанных пользователей в гостей.

security = SHARE - Когда клиенты присоединяются к ресурсу с security = SHARE им не нужно регистрироваться с использованием действительного имени пользователя и пароля. Вместо этого, клиенты посылают информацию аутентификации (пароли) на конкретный ресурс, в тот момент, когда хотят получить доступ к этому ресурсу. В режиме SHARE от пользователя не требуется отправки его имени, только пароль.

security = SERVER - В этом режиме Samba попытается определить правильность пары пользователь/пароль, передав ее другому серверу SMB, такому как NT. Если это не получится, будет работать security = USER.

security = ADS - В этом режиме Samba работает как член домена AD.

security = DOMAIN - В этом режиме Samba попытается опознать имя пользователя и пароль, передав их первичному или резервному домен контроллерам Windows NT, т.е. сделает тоже самое, что сделал бы сервер Windows NT.

Примечание: Проверял с параметрами share и user, в обеих случаях проблем ни при коннекте с виндовс 7, ни при коннекте с машины под управлением линукс не возникало, а вот с кпк под WM 6.1 удалось подсоединиться только в режиме user.

browseable — хотите ли вы сделать доступными все подкаталоги рашариваемого каталога. Этот параметр также можно использовать отдельно для каждого расшариваемого каталога.

path — путь до расшариваемой папки. В данном конкретном примере будут расшарены папка torrent(для заливки торрент-файлов для программы rtorrent), download(для скачивания закачанных rtorrent файлов) и папка hdisk в которую примонтирован мой внешний жесткий диск.

comment — комментарий.

readonly – только для чтения. Обратите внимание, что Samba может ограничить права пользователя, но не может расширить права, заданные системой. То есть если на рсшариваемом каталоге не стоят права на запись для всех в самой системе, Samba не сможет разрешить запись в него сторонним пользователям. Однако если на каталоге стоят права 777, то задав параметр readonly = Yes вы сможете ограничить доступ на запись для пользователей, подключающихся из сети.

guest ok = Yes - добавьте, если хотитете сделать доступ без авторизации. (В режиме security = USER работать не будет, см. выше)

Даем права на папки:

sudo chmod 777 /home/torrent/ и аналогично для других.

После завершения конфигурации выполняем команду:

testparm

она автоматически проверит файл конфигурации. После этого перезагружаем Samba:

sudo /etc/init.d/samba restart

sudo smbpasswd -a virtdiver # добавляем пользователя в самбу

В линуксе монтируем сетевые папки так:

sudo smbmount //192.168.1.33/hdisk/ /home/virtdiver/hdisk/ -o rw,iocharset=utf8,usermame=virtdiver,password=pass

или

sudo smbmount //linux--server/hdisk/ ~/hdisk/ -o rw,iocharset=utf8,usermame=virtdiver,password=pass

размонтируем:

sudo smbumount ~/hdisk

Вводить три таких строчки неудобно, поэтому пишем скрипт.

touch samba.sh
nano samba.sh


в файл пишем:

#!/bin/bash
echo 'Монтируем //192.168.1.33/hdisk/'
sudo smbmount //192.168.1.33/hdisk/ /home/virtdiver/hdisk/ -o rw,iocharset=utf8,usermame=virtdiver
echo 'Монтируем //192.168.1.33/torrent/'
sudo smbmount //192.168.1.33/torrent/ /home/virtdiver/torrent/ -o rw,iocharset=utf8,usermame=virtdiver
echo 'Монтируем //192.168.1.33/download/'
sudo smbmount //192.168.1.33/download/ /home/virtdiver/download/ -o rw,iocharset=utf8,usermame=virtdiver

Даем права на выполнение:

sudo chmod 755 samba.sh

запускаем:

~/samba.sh

все параметры файла конфигурации на русском можно посмотреть здесь: smb-conf.ru

April 27, 2010