Product SiteDocumentation Site

Глава 36. Samba в режиме файлового сервера

36.1. Настройка smb.conf
36.2. Монтирование ресурса Samba через /etc/fstab
Samba — пакет программ, которые позволяют обращаться к сетевым дискам и принтерам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части.

36.1. Настройка smb.conf

Примечание

После редактирования файла /etc/samba/smb.conf, следует запустить команду testparm для проверки файла на синтаксические ошибки:
# testparm /etc/samba/smb.conf
И, в случае отсутствия ошибок, перезапустить службы smb и nmb, чтобы изменения вступили в силу:
# systemctl restart smb
# systemctl restart nmb
Каждый раздел в файле конфигурации (кроме раздела [global]) описывает общий ресурс. Название раздела — это имя общего ресурса. Параметры в разделе определяют свойства общего ресурса.
Общий ресурс состоит из каталога, к которому предоставляется доступ, а также описания прав доступа, которые предоставляются пользователю.
Разделы — это либо общие файловые ресурсы, либо службы печати. Разделам может быть назначен гостевой доступ, в этом случае для доступа к ним не требуется пароль (для определения прав доступа используется специальнаяя гостевая учетная запись). Для доступа к разделам, к которым запрещен гостевой доступ, потребуется пароль.

Примечание

Samba использует отдельную от системной базу данных пользователей. Для возможности доступа пользователя к папке (если запрещен гостевой доступ) необходимо внести его в базу данных Samba и установить пароль для доступа к общим ресурсам (он может совпадать с основным паролем пользователя). Следует учитывать, что в базу данных Samba можно добавлять пользователей, которые уже есть в системе.
Добавить пользователя в базу данных Samba можно, выполнив команду (должен быть установлен пакет samba-common-client):
# smbpasswd -a <имя_пользователя>
В файле конфигурации есть три специальных раздела: [global], [homes] и [printers]:
Раздел [global]
Параметры в этом разделе применяются к серверу в целом или являются значениями по умолчанию для разделов, и могут быть переопределены в разделе.
Раздел [homes]
Используется для подключения домашних каталогов пользователей. При каждом обращении Samba сначала ищет имя запрошенного ресурса в списке общих ресурсов, и если имя не найдено проверяет наличие в конфигурации секции [homes]. Если такая секция есть, то имя трактуется как имя пользователя, и проверяется по базе данных пользователей сервера Samba. Если имя найдено в базе данных пользователей, то Samba предоставляет в качестве общего ресурса домашний каталог этого пользователя. Аналогичный процесс происходит, если имя запрошенного ресурса — «homes», за исключением того, что имя общего ресурса меняется на имя запрашивающего пользователя.
Раздел [printers]
Если в файле конфигурации имеется раздел [printers], пользователи могут подключаться к любому принтеру, указанному в файле printcap локального хоста.

Примечание

Для возможности использования файлового ресурса [homes], необходимо добавить каждого локального пользователя в список пользователей Samba, например:
# smbpasswd -a user
New SMB password:
Retype new SMB password:
Added user user.

Примечание

Если в разделе [homes] указан гостевой доступ (guest ok = yes), все домашние каталоги будут видны всем клиентам без пароля. Если это действительно нужно (хотя маловероятно), разумно также указать доступ только для чтения (read only = yes).

Примечание

Флаг browseable для домашних каталогов будет унаследован от глобального флага browseable, а не флага browseable раздела [homes]. Таким образом, установка browseable = no в разделе [homes] скроет общий ресурс [homes], но сделает видимыми все автоматические домашние каталоги.
Описание некоторых параметров:
  • browseable — определяет, отображается ли этот общий ресурс в списке доступных общих ресурсов в сетевом окружении и в списке просмотра (по умолчанию: browseable = yes);
  • path — указывает каталог, к которому должен быть предоставлен доступ;
  • read only — если для этого параметра задано значение «yes», то пользователи службы не могут создавать или изменять файлы в каталоге (по умолчанию: read only = yes);
  • writable — инвертированный синоним для read only (по умолчанию: writeable = no);
  • write list — список пользователей, которым будет предоставлен доступ для чтения и записи. Если пользователь находится в этом списке, ему будет предоставлен доступ для записи, независимо от того, какой параметр установлен для параметра read only. Список может включать имена групп с использованием синтаксиса @group;
  • read list — список пользователей, которым будет предоставлен доступ только для чтения. Если пользователь находится в этом списке, ему не будет предоставлен доступ для записи, независимо от того, какой параметр установлен для параметра read only. Список может включать имена групп;
  • guest ok — если этот параметр имеет значение «yes», то для подключения к ресурсу не требуется пароль (по умолчанию: guest ok = no);
  • guest only — разрешить только гостевые соединения к общему ресурсу (по умолчанию: guest only = no);
  • printable — если этот параметр имеет значение «yes», то клиенты могут открывать, писать и ставить задания в очередь печати (по умолчанию: printable = no);
  • map to guest — определяет что делать с запросами, которые не удалось аутентифицировать («Never» — запросы с неправильными паролями будут отклонены; «Bad user» — запросы с неправильными паролями будут отклонены, если такое имя пользователя существует;) (по умолчанию: map to guest = Never).
Пример настройки /etc/samba/smb.conf для работы Samba в режиме файлового сервера с двумя открытыми для общего доступа ресурсами, домашними каталогами пользователей и принтером (закомментированные параметры действуют по умолчанию):
[global]
    workgroup = WORKGROUP
    server string = Samba Server Version %v
    security = user
    log file = /var/log/samba/log.%m
    max log size = 50
    guest ok = yes
    cups options = raw
    map to guest = Bad User
;   idmap config * : backend = tdb

[homes]
    comment = Home Directory for '%u'
    browseable = no
    writable = yes
    guest ok = no

[share]
    comment = Commonplace
    path = /srv/share
    read only = No

[printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = no
;   guest ok = no
;   writable = no
    printable = yes

# Каталог доступный только для чтения, за исключением пользователей
# входящих в группу "staff"
[public]
    comment = Public Stuff
    path = /home/samba
    public = yes
    writable = yes
    write list = +staff
;   browseable = yes

[Free]
    path = /mnt/win/Free
    read only = no
;   browseable = yes
    guest ok = yes
Просмотр ресурсов, доступных пользователю user:
# smbclient -L 192.168.0.157 -Uuser
Password for [WORKGROUP\user]:

	Sharename       Type      Comment
	---------       ----      -------
	share           Disk      Commonplace
	public          Disk      Public Stuff
	Free            Disk
	IPC$            IPC       IPC Service (Samba Server Version 4.15.9)
	user            Disk      Home Directory for 'user'
Обращение к домашней папке пользователя выполняется по имени пользователя (например, smb://192.168.0.157/user).

Примечание

Для ознакомления с прочими возможностями, читайте руководство по smb.conf. Для этого используйте команду man smb.conf.