Product SiteDocumentation Site

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

Samba можно настроить как файловый сервер. Samba также можно настроить как сервер печати для совместного доступа к принтеру.

Примечание

Не рекомендуется размещать файловый сервер на контроллере домена. Файловый сервер должен быть присоединён к домену, но не являться DC.
Каждый раздел в файле конфигурации (кроме раздела [global]) описывает общий ресурс. Название раздела — это имя общего ресурса. Параметры в разделе определяют свойства общего ресурса.
Общий ресурс состоит из каталога, к которому предоставляется доступ, а также описания прав доступа, которые предоставляются пользователю.
Разделы — это либо общие файловые ресурсы, либо службы печати. Разделам может быть назначен гостевой доступ, в этом случае для доступа к ним не требуется пароль (для определения прав доступа используется специальная гостевая учетная запись). Для доступа к разделам, к которым запрещен гостевой доступ, потребуется пароль.

Примечание

Вне домена Samba использует отдельную от системной базу данных пользователей. Для добавления в нее служит отдельная утилита smbpasswd. Для работы в доменной среде необходимости добавлять пользователей в эту базу нет. Достаточно ввести ПК в домен, используя winbind или sssd.
В файле конфигурации есть три специальных раздела: [global], [homes] и [printers]:
Раздел [global]
Параметры в этом разделе применяются к серверу в целом или являются значениями по умолчанию для разделов, и могут быть переопределены в разделе.
Раздел [homes]
Используется для подключения домашних каталогов пользователей. При каждом обращении Samba сначала ищет имя запрошенного ресурса в списке общих ресурсов, и если имя не найдено проверяет наличие в конфигурации секции [homes]. Если такая секция есть, то имя трактуется как имя пользователя (макрос %S).
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
#можно переназначить путь до домашнего каталога, указав path
#path = /opt/smbhome/%S
Раздел [printers]
Если в файле конфигурации имеется раздел [printers], пользователи могут подключаться к любому принтеру, указанному в файле /etc/printcap локального хоста. Как правило, в файле /etc/printcap содержатся те принтеры, что настроены в CUPS.

Примечание

Флаг 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;

    Примечание

    Особенности написания имен групп:
    • в случае, если в названии группы есть пробел, необходимо использовать кавычки, например, @"Domain users";
    • в случае, если работа происходит в мультидоменной среде, следует принудительно указывать домен, например, @"TEST\Domain users";
    • несколько значений разделяются запятой, например, write list = @"TEST\Domain users", @it, @NEW\buh
  • read list — список пользователей, которым будет предоставлен доступ только для чтения. Если пользователь находится в этом списке, ему не будет предоставлен доступ для записи, независимо от того, какой параметр установлен для параметра read only. Список может включать имена групп;
  • guest ok — если этот параметр имеет значение «yes», то для подключения к ресурсу не требуется пароль (по умолчанию: guest ok = no);
  • guest only — разрешить только гостевые соединения к общему ресурсу (по умолчанию: guest only = no);
  • printable — если этот параметр имеет значение «yes», то клиенты могут открывать, писать и ставить задания в очередь печати (по умолчанию: printable = no);
  • valid users — список пользователей (групп), которым разрешен доступ к сервису;
  • force group — принудительное изменение группы на создаваемые файлы/каталоги;
  • force create mode — принудительная установка указанных атрибутов на файлы;
  • force directory mode — принудительная установка указанных атрибутов на каталоги.

Примечание

После редактирования файла /etc/samba/smb.conf, следует запустить команду testparm для проверки файла на синтаксические ошибки:
# testparm /etc/samba/smb.conf
И, в случае отсутствия ошибок, перезапустить службы smb и nmb, чтобы изменения вступили в силу:
# systemctl restart smb
# systemctl restart nmb
Пример настройки:
[Sales]
comment = Sales documents
path = /opt/sales
writable = yes
read list = @sales, @sales-ro
write list = @sales
force group = sales
force create mode = 666
force directory mode = 775

Примечание

Пример создания каталога для ресурса общего доступа:
# mkdir /opt/sales
# chown -R root:"TEST.ALT\\Domain Users" /opt/sales
# chmod -R 2775 /opt/sales
Если нужно скрыть общие ресурсы или файлы, недоступные пользователю в связи отсутствием прав, можно воспользоваться следующими параметрами:
  • access based share enum = yes — включает фильтрацию списка общих ресурсов (верхний уровень) в зависимости от прав пользователя. Пользователь будет только те ресурсы, к которым у него есть хотя бы минимальный доступ;
  • hide unreadable = yes — скрывает файлы/каталоги внутри общего ресурса, если у пользователя нет прав на их чтение;
  • hide unwriteable files = yes — скрывает файлы/каталоги общего ресурса, в которые у пользователя нет прав на запись.

Примечание

Эти опции не заменяют настройку прав, а только управляют видимостью.
Просмотр ресурсов, доступных доменному пользователю ivanov, с использованием активного Kerberos билета:
  1. Получить билет, если он еще не получен:
    $ kinit ivanov
    Password for ivanov@TEST.ALT:
    
  2. Сделать запрос на получение списка ресурсов, используя «прозрачную» аутентификацию:
    $ smbclient -k -L //fs-server.test.alt/
    WARNING: The option -k|--kerberos is deprecated!
    
    Sharename       Type      Comment
    ---------       ----      -------
    print$          Disk      Printer Drivers
    free            Disk
    Sales           Disk      Sales documents
    IPC$            IPC       IPC Service (Samba 4.19.9-alt5)
    ivanov          Disk      Home Directories
    SMB1 disabled -- no workgroup available
    
    или:
    $ smbclient --use-kerberos=required --use-krb5-ccache=CCACHE -L //fs-server.test.alt/
    
    Sharename       Type      Comment
    ---------       ----      -------
    print$          Disk      Printer Drivers
    free            Disk
    Sales           Disk      Sales documents
    IPC$            IPC       IPC Service (Samba 4.19.9-alt5)
    ivanov          Disk      Home Directories
    SMB1 disabled -- no workgroup available
    

Примечание

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