Настройка файлового сервера Samba
- Информация о материале
- Категория: Servers (ru)
- Опубликовано: 02.04.2012, 17:00
- Автор: Super User
- Просмотров: 6327
Samba— пакет программ, которые позволяют обращаться к сетевым дискам и принтерам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части. Является свободным программным обеспечением, выпущена под лицензией GPL.
Начиная с третьей версии Samba предоставляет службы файлов и печати для различных клиентов Microsoft Windows и может интегрироваться с операционной системой Windows Server, либо как основной контроллер домена (PDC), либо как член домена. Она также может быть частью домена Active Directory.
Samba работает на большинстве Unix-подобных систем, таких, как Linux, POSIX-совместимых Solaris и Mac OS X Server, на различных вариантах BSD. Samba включена практически во все дистрибутивы Linux.
Установка сервера Samba производится командой
#apt-get install samba
Cервер Samba, который может предоставлять доступ к папкам общего доступа по протоколу SMB. Доступ может предоставляться как парольный, так и безпарольный.
Рассмотрим варианты настройки Samba-сервера.
Настройка беспарольного доступа к общим папкам.
Откроем файл /etc/samba/smb.conf и заполним его следующим образом:
[global]
workgroup = WORKGROUP
hosts allow = 192.168.7.0/24
interfaces = eth0
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
guest account = nobody
security = share
dos charset = cp866
unix charset = UTF-8
[share]
path = /var/local
comment = share
printable = no
writable = yes
guest ok = yes
create mask = 0666
directory mask = 0777
Теперь рассмотрим подробно файл конфигурации.
В секции Global описываются общие настройки работы сервера.
workgroup — записываем имя нашей рабочей группы или домена
hosts allow — описываем подсеть, которая будет иметь доступ к нашему серверу
interfaces — перечисляем сетевые интерфейсы, на которых будут приниматься соединения (возможно значение all)
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
В этих переменных описываются параметры ведения логов нашего Samba-сервера
guest account — задаем соответствие между пользователем Гость и системным пользователем
security = share — используется в случае настройки беспарольного доступа.
dos charset — указывает кодировку, в которой Samba будет общаться с клиентами, не поддерживающими Unicode
unix charset — указывает кодировку компьютера на котором работает Samba
Далее идут секции, которые описывают соответствующие папки общего доступа. У нас эта секция одна — [share]
path — путь к папку на сервере
comment — сетевое имя папки
writable — разрешена ли запись в папку общего доступа
guest ok — разрешен ли гостевой доступ
create mask — описываются права для вновь созданного файла
directory mask — описываются права для вновь созданного каталога
После создания нашего файла конфигурации необходимо перезапустить сервис Samba
#service smbd restart
Теперь можно проверить соединение с нашим файловым сервером с любого компьютера в сети.
Для этого в Windows открываем в explorer ссылку \\samba-ip
или в Linux выполняем в консоли команду
smbclient -L samba-ip -N
В последнем случае просто будет выведен список папок общего доступа на нашем сервере
Настройка парольного доступа к общим папкам.
Изменим некоторые параметры в секции Global.
А точнее, вместо security = share напишем security = user
Так же следует внести изменения в секцию описания папки общего доступа. Удалим строку guest ok = yes
и добавим строку
write list = user1
Где user1 пользователь, который имеет полный доступ к папке.
Теперь нужно создать пользователя user1 в системе
#adduser user1
и добавить системного пользователя в пользователи самбы
#smbpasswd -a user1
Обратите внимание! Пароль пользователя в системе и пароль пользователя к ресурсам Samba могут быть разными.
Теперь доступ к нашей папки общего доступа будет с паролем.
Если завести аналогичным образом второго пользователя, то у него доступ к данной папке будет только для чтения.
Можно полностью ограничить доступ пользователя user2 к нашей папке общего доступа. Для этого на сервере создается группа, например, share
#addgroup share
И в эту группу добавляется пользователь user1
#addgroup user1 share
Далее на папку в системе выставляются права 770
#chmod 770 /var/local
И изменяется владелец папки
#chgrp share /var/local/
Теперь пользователь user2 вообще не сможет зайти в нашу папку общего доступа.