Russian English German Ukrainian

Компьютерная помощь

(066) 72-00-654     (098) 44-74-068

г. Днепр

ж/м Левобережный-3

Samba

ubuntu logo

Samba - пакет программ, которые позволяют обращаться к сетевым дискам и принтерам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части. Начиная с третьей версии Samba предоставляет службы файлов и печати для различных клиентов Microsoft Windows и может интегрироваться с операционной системой Windows Server, либо как основной контроллер домена (PDC), либо как член домена. Она также может быть частью домена Active Directory.

Настройка

Установка Samba:

sudo apt-get install samba

Самба хранит все свои настройки в файле /etc/samba/smb.conf. Откроем его для редактирования:

sudo nano /etc/samba/smb.conf

Каждый раздел файла начинается с заголовка раздела: [global], [homes], [printers], и т.п.

В [global] определяются глобальные настройки для всего сервера. Раздел [homes] позволяет удаленным пользователям иметь доступ к своим (и только своим) домашним директориям на сервере. Т. е., если к серверу подключиться пользователь user1, то он будет подключены к своему домашнему каталогу. Для этого он должен быть зарегистрированы на сервере. В [printers] прописаны настройки для принтеров.

Глобальные настройки:

[global]
; куда записывать логи
log file = /var/log/samba/log.%m
; максимальный размер файла журнала
max log size = 1000
# имя самба сервера в сетевом окружении
netbios name = HomeServer
; коментарий самба сервера
server string = Home Server Ubuntu
; Рабочая группа
workgroup = WORKGROUP
; выступать как контролер домена
domain master = no
; привязка к интерфейсам, на каких слушать, если не указано
;слушает на все интерфейсах, можно указать ай-пи адреса
interfaces = lo, eth2
; подчиняться директивам учетных записей PAM и управлению сессиями
obey pam restrictions = yes
; шифрование паролей между сервером и клиентом
encrypt passwords = true
; параметр сообщают демону smbd что делать с запросами,
; которые не удалось аутентифицировать в UNIX
; bad user – запросы с неправильным паролем будут отклонены, если
; такое имя пользователя существует. Если не существует, то такие запросы
; будут считаться как попытки зайти гостем (guest account).
map to guest = bad user
; определяет будет ли демон nmbd делать запрос к DNS, если WINS
; не смог разрешить NetBIOS имя
dns proxy = no
; параметр заставляет синхронизировать пароль UNIX с паролем SMB при
; изменении зашифрованного пароля SMB в файле smbpasswd. При включении
; этого параметра (yes) от пользователя ROOT вызывается программа,
; определенная в параметре passwd program, что позволяет установить
; новый пароль UNIX без доступа к старому паролю UNIX
unix password sync = yes
; имя программы, которую можно использовать для смены паролей UNIX,
; любые вхождения %u будут заменены именем пользователя
passwd program = /usr/bin/passwd %u
; механизм для хранения информации о пользователях
passdb backend = tdbsam
; уровень отладки журналов событий, которые будут записываться
; в системный syslog, 0 - события LOG_ERR, 1 - LOG_WARNING,
; 2 — LOG_NOTICE, 3 - LOG_INFO.
syslog = 0
; режим работы Samba:
; share - уровень ресурсов,
; user - уровень пользователей, доступ по логин-паролю,
; domain - домен,
; server - сервер паролей,
; ads - Active directory
security = user
; не аутентифицированные пользователи получают доступ к общим
; ресурсам пользователей
usershare allow guests = yes
panic action = /usr/share/samba/panic-action %d
os level = 20
; если включено, для смены паролей будет использован PAM, вместо
; программы указанной в параметре passwd program
pam password change = yes
; разрешаем доступ для всех со своей подсетки и локалхоста
hosts allow = 192.168.10. 127.
; пользователь с root-правами
admin users = user1
; выступать сервером времени
time server = yes

поменяйте название рабочей группы (то, что большими буквами после знака ‘=’) на вашу (в Windows обычно это MSHOME или WORKGROUP).

И сразу после этой строки добавьте строку:

usershare owner only = false

Это даст возможность шарить папки на ntfs и fat разделах.

Основные настройки сделаны. Расшариваем домашние папки пользователей.

[HOMES]
; комментарий
comment = Home directories
; путь к папке, %U = имя пользователя
path = /home/samba/homes/%U
; только для чтения?
read only = no
; вход с паролем?
public = no
; запись разрешена?
writable = yes
; права создаваемых файлов и папок
create mask = 0600
directory mask = 0700
; отображать в списке ресурсов в сетевом окружении?
browseable = no

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

Пример:

; создадим расшаренную папку files
 [files]
 ; комментарий к создаваемой папке
 comment = Media files
 ; путь к папке
 path = /home/user1/files
;уровень пользователей, доступ по логин-паролю
security = user
 ; будем разрешать доступ только по паролю
 public = yes
 ; не видно в сетевом окружении всем кроме владельцев
 printable = no
 ; не пускаем гостей
 guest ok = no
 ; доступ к папке имеют только указаные пользователи
 user = user1 user2
 valid users = user1 user2
 ; запрещаем запись всем
 writable = no
 ; и разрешаем запись для user1 и пользователям из группы adm
 write list = user1 @adm
 ; запретить добовлять файлы avi, mp, wav
 veto files = /*.avi/*.mp*/*.wav/

По аналогии создаются все остальные шары.

Добавление пользователей

Делаем следующее:

sudo smbpasswd -a username

Вам будет предложено ввести пароль, пользователь будет добавлен в базу, теперь необходимо включить этого пользователя.

sudo smbpasswd -e username

Для проверки правильности сделанных настроек выполните команду

testparm

если testparm сообщает об отсутствии проблем, то smbd правильно загрузит файл настроек. Не забудьте перезапустить Samba после изменения конфиг-файла.

sudo /etc/init.d/smbd restart

Если будете расшаривать внешние устройства, ntfs диски и т. д., не забудьте добавить пользователя в группу plugdev.

Создать пользователя

Создать нового пользователя:

adduser или useradd

Удалить пользователя:

deluser или userdel

adduser [options] [--home  DIR] [--shell  SHELL] [--no-create-home] [--uid ID] [--firstuid ID] [--lastuid ID] [--ingroup GROUP | --gid  ID] [--disabled-password] [--disabled-login] [--gecos  GECOS] [--add_extra_groups] user

Используем команду useradd для добавления нового пользователя в существующую группу. Если группа не существует создайте её. Синтаксис:

sudo useradd -G (group-name) username

Добавим в систему нового пользователя с именем test:

sudo useradd test -b /home/clamav/ -m -G users

где:

test - имя пользователя
/home/clamav - место где будет находиться домашняя директория пользователя.
-m — указывает на то, что будет создана одноименная домашняя директория.
-G users — добавим пользователя в группу users.

Создадим пользователя vivek и добавим его в группу developers. Залогиньтесь как пользователь root и убедитесь что группа developers существует:

grep developers /etc/group

Вывод:

developers:x:1124:

Если группы нет, используйте команду groupadd для создания новой группы developers:

sudo groupadd developers

Затем добавьте нового пользователя vivek в группу developers:

sudo useradd -G developers vivek

Если пользователь уже существует, то:

sudo addgroup vivek developers

Установите пароль пользователю vivek:

sudo passwd vivek

Убедитесь что пользователь добавлен в группу developers:

id vivek

Вывод:

uid=1122(vivek) gid=1125(vivek) groups=1125(vivek),1124(developers)

Опция -G позволяет добавить пользователю группу. Группы можно перечислять через запятую. К примеру, добавим пользователя jerry в группы admins, ftp, www, and developers, введя:

sudo useradd -G admins,ftp,www,developers jerry

Пример использования usermod

Добавляем существующего пользователя tony в вторичную группу ftp:

sudo usermod -a -G ftp tony

Изменяем существующему пользователю tony первучную группу на www:

sudo usermod -g www tony

Error

Если при добавлении пользователя в samba, происходит ошибка - smbpasswd: command not found, значит необходимо установить пакет samba-common-bin:

sudo apt-get install samba-common-bin

 

Порт: 137, 138, 139, 445