вторник, 1 июня 2010 г.

Установка и настройка SAMBA на Ubuntu 10.04

Пишу больше для себя, но может кому ещё пригодиться, что бы в следующий раз не тратить время в поисках ответа на интересующие вопросы. Т.к. это система настроил и забыл, поэтому быстро всё вылетает из головы.
Сразу оговорюсь, что samba мне была нужна для создание сетевого диска на мою домашнюю сеть (настольный ПК, ноут с win7 ну и разные мелочёвскиее девайсы смартфоны и приходящие оборудование). Что бы имелся доступ к музыки, фильмам и прогам, по этому создавалась просто файловая помойка с гостевым доступом.

Ну для начала ставим самбу

sudo aptitude install samba


Затем лезим в конфиг /etc/samba/samb.conf и настраевыем его ручками.

sudo gedit /etc/samba/smb.conf


Я если чесно не заморачивался настройками, по этому удалил из файла конфигурации самбы весь текст и записал основное, что бы всё фурычило. Если нужна более детальная настройка с авторизацией пользователей это вот сюда. Вот что вышло:

[global]
workgroup = MUSTDIE
netbios name = UBUNTU
security = share
log file = /var/log/samba/log.%m
syslog = 0
syslog only = no
hosts allow = 192.168.


[share_500GB]
browseable = yes
comment = share
path = /mnt/W
guest ok = yes
guest only = yes
create mask = 0755
directory mask = 0755
writable=yes
readonly=no

Да и ещё:
sudo chmod 777 /mnt/W - доступ для записи

Теперь немного теориии. Конфигурационный файл /etc/samba/smb.conf имеет следующий синтаксис:

[секция1]
опция1 = значение
опция2 = значение
[секция2]
опция1 = значение
опция2 = значение


Пакет Samba состоит из различных компонентов. Демон smbd предоставляет файлов сервис и сервис печати для SMB клиентов, таких как Windows for Workgroups, Windows NT или LanManager. Конфигурационный файл ддя этого демона описывается в smb.conf. Демон nmbd предоставляет сервис имен Netbios и поддержку просмотра сети. Он также может быть запущен в интерактивном режиме для запросов на поиск других демонов сервиса имен.
При этом есть три зарезервированные секции: [global] , [homes] и [printers]. Секция [global] определяет некоторые опции, значения которых будут распространяться на все остальные секции, если в них явно не указано обратное.
Секция [homes] позволяет предоставить удаленным пользователям доступ к своим (и только своим) домашним директориям. Так что, если пользователи попытаются подключиться к этому сетевому ресурсу (адрес smb://server/username/ или \\server\username), то они будут подключены к персональным домашним директориям, закрепленным как "домашний каталог" за пользователем, под учетной записью которого они зарегистрировались на samba-сервере. Заметим, что для того чтобы удаленный пользователь мог авторизоваться на samba-сервере, мало добавить соответствующего пользователя в систему (useradd), необходимо еще создать samba-пароль для этого пользователя (smbpasswd), который может отличаться от системного (passwd).
Секция [printers] отвечает за определение опций доступа к принтеру по сети, но это мы рассматривать не будем, уж больно сложно там для меня все. С помощью SAMBA можно настроить наш сервер как PDC (Primary Domain Controller) (ссылка), в этом случае добавляются еще две зарезервированные секции: [netlogons] и [Profiles]
Остальные секции, например [somesection] будут соответствовать шарам, т.е. клиент на данном компьютере увидет шару somesection с правами, описанными в данной секции.
Некоторые параметры специфичны для раздела [global]. Некоторые параметры используются во всех разделах. Все другие разрешены только в нормальных разделах. Разделы [homes] и [printers] считаются нормальными. Символ [G] в говорит что параметр указан для раздела [global]. Символ [S] говорит что параметр указан для сервисного раздела. Все [S] параметры могут также указываться в разделе [global] – в этом случае они будут определяться по-умолчанию для всех сервисов. Параметры переведённые полность или частично на руский язык, а так же большенство man-ов для самбы можно взять здесь.
Теории думаю достаточно, а кому нет, тогда вам в руки маны русские и заграничные ;). Теперь более подробно разберём небольшой но работающий smb.conf. В секции [global] указываем рабочую группу сети.

#Этот параметр отвечает за рабочую группу в которой будет виден сервер
workgroup = MUSTDIE
#Имя компьютера в сети
netbios name = UBUNTU


Важный параметр это security [G] этот параметр влияет на то, как будут себя вести клиенты Samba. Значение по умолчанию security = USER. Другие значения: SHARE, SERVER или
DOMAIN.

#Этото параметр со значением share, что значит пользователю не нужно регистрироваться.
security = share
#Указывает куда сохранять логи
log file = /var/log/samba/log.%m
#параметр указывает уровень отладки журналов событий
#0-будет означать, что в системный syslog будут попадать события LOG_ERR,
#1-соответствует LOG_WARNING,
#2-LOG_NOTICE и 3 соотв. LOG_INFO
syslog = 0
syslog only = no
#разрешить все IP из 192.168.*.*;
hosts allow = 192.168.


После заполнения секции [global] наш комп будет виден домашней сети, но что бы разрешить доступ к нашему диску нужно добавить ещё одну секцию она у меня называеться [share_500GB] .

#Параметр устанавливает, будет ли общий ресурс отображаться в списке доступных общих #ресурсов в сетевом окружении и в списке просмотра.
browseable = yes
#прсио коментарий к диску
comment = share
#Путь к каталогу или в моём случае к точке монтирования диска.
path = /mnt/W
#Разрешить подключаться гостям (анонимным пользователям)
guest ok = yes
guest only = yes
#Hеобходимые права доступа, т.к. сеть локальная я поставил так
create mask = 0666
directory mask = 0755
#Что бы пользователь смог создовать и удалять файлы
readonly=no


Ну вот и всё сохраняем конфиг и перезапускаем sambu

sudo services smbd restart


Некорые команды

smbstatus— отчет о текущих соединениях Samba.
testparm — проверяет правильность оформления настроек в файле smb.conf.


Кстати в Ubunt-e у меня возникла неприятная ситуация, при загрузке система автоматически монтировала мой жёсткий диск с ntfs в папку /media, но от туда по сети диск не давал доступа. При монтировании диска вручную в /mnt/W происходило следующее, диск из системы исчезал, но появлялся для доступа через сеть. Поэтому не придумав нечего лучшего я примонтировал его через /etc/fstab добавив вот эту строку

UUID=E1A57EADDDECDB01 /mnt/W ntfs-3g defaults,nls=utf8,umask=0 0 0


Для этого нужен драйвер ntfs-3g, если он не установлен устанавливаеться командой

sudo aptitude install ntfs-3g ntfs-config


UUID=E1A57EADDDECDB01- (можно и /dev/sdb5) идинтификатор диска (UUID) можно узнать с помощью команды

sudo /sbin/blkid
[sudo] password for eksp:
/dev/sda1: UUID="9a99972f-67ad-457b-ae01-1bad6ef6fc0f" TYPE="ext4"
/dev/sda5: UUID="3b7c7c1a-cc78-48bc-9c53-b91ed8d3e195" TYPE="swap"
/dev/sdb5: LABEL="Archive" UUID="E1A57EADDDECDB01" TYPE="ntfs"


/mnt/W- точка монтирования, заранее требуеться создать папку ' W '
ntfs-3g — тип файловой системы
defaults,nls=utf8,umask=0 0 0 — опции
0 1 : 0 - означает без бекапа диска, 1 - проверка диска при монтировании
Вот и всё, настройка полностью закончена, радуемся и смотрим филмы по домашней сети ;)

Дополнение: настройка сетевого принтера (до конца не разобрался, но при установке сервера ubuntu установил ПО принт-сервера). В конфиге самбы дописал:
[printers]
comment = HP1020
browseable = Yes
path = /var/spool/samba
printable = yes
guest ok = yes
create mask = 0775


# Windows clients look for this share name as a source of downloadable
# printer drivers
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
create mask = 0775
directory mask = 0775
guest ok = no

Драйвера под винду для автоматической установки принтера с сервера подрубить не смог...пока...пришлось на виндовой машине устанавливать драва скачанные с инета :(

Комментариев нет:

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