Внутреннее устройство Linux
Шрифт:
12.4.1. Конфигурирование сервера Samba
Главным файлом конфигурации Samba является файл smb.conf, который в большинстве версий ОС помещается внутри каталога etc, например в каталоге /etc/samba. Тем не менее вам может потребоваться поискать его, поскольку он может также располагаться внутри каталога lib, например в каталоге /usr/local/samba/lib.
Формат файла smb.conf подобен стилю XDG, который вы уже встречали всюду (например, в конфигурации службы systemd): файл разбит на несколько секций, отмеченных с помощью квадратных скобок (например, так: [global] и [printers]). Секция [global] содержит
[global]
# server name
netbios name = name
# server description
server string = My server via Samba
# workgroup
workgroup = MYNETWORK
Эти параметры означают следующее:
• netbios name — имя сервера. Если опустить этот параметр, сервер Samba использует имя хоста Unix;
• server string — краткое описание сервера. По умолчанию это номер версии пакета Samba;
• workgroup — имя рабочей группы SMB. Если вы находитесь в домене Windows, укажите для этого параметра имя вашего домена.
12.4.2. Контроль доступа к серверу
Можно добавить в файл smb.conf параметры, позволяющие ограничить круг компьютеров и пользователей, которые имеют доступ к серверу Samba. Следующий перечень содержит многие из параметров, которые можно указать в секции [global], а также в секциях, контролирующих отдельные ресурсы (как объяснено далее в этой главе).
• interfaces. Настройте этот параметр, чтобы сервер Samba прослушивал только указанные сети или интерфейсы. Например:
interfaces = 10.23.2.0/255.255.255.0
interfaces = eth0
• bind interfaces only. Установите значение yes, если используете параметр interfaces, чтобы ограничить доступ к компьютерам только этими интерфейсами.
• valid users. Укажите только тех пользователей, которым разрешается доступ. Например:
valid users = jruser, bill
• guest ok. Установите для этого параметра значение true, чтобы сделать совместно используемые ресурсы доступными для анонимных пользователей сети.
• guest only. Установите для этого параметра значение true, чтобы разрешить только анонимный доступ.
• browseable. Установите этот параметр, чтобы совместно используемые ресурсы можно было видеть с помощью сетевых браузеров. Если для этого параметра установить значение no для всех совместных ресурсов, то у вас по-прежнему останется возможность доступа к ним на сервере Samba, но для этого вам потребуется точно знать их имена.
12.4.3. Пароли
Следует позволять доступ к серверу Samba только с использованием аутентификации с помощью пароля. К сожалению, базовая система паролей в Unix отличается от такой системы в Windows, поэтому, если вы не укажете сетевые пароли в виде простого текста или пароли аутентификации на сервере Windows, вам придется устанавливать альтернативную систему паролей. Данный раздел рассказывает о том, как настроить такую систему с помощью серверного приложения Trivial Database (TDB), которое подходит для небольших сетей.
Для начала используйте такие записи в секции [global] файла smb.conf, чтобы определить характеристики базы данных паролей Samba:
# use the tdb for Samba to enable encrypted passwords
security = user
passdb backend = tdbsam
obey pam restrictions = yes
smb passwd file = /etc/samba/passwd_smb
Они позволяют работать с этой базой данных с помощью команды smbpasswd. Параметр obey pam restrictions дает гарантию того, что каждый пользователь, который будет менять свой пароль с помощью команды smbpasswd, должен будет соблюсти все правила, предусмотренные модулем PAM (Pluggable Authentication Module, подключаемый модуль аутентификации) при обычной смене пароля. Для параметра passdb backend можно добавить после двоеточия необязательное имя пути к файлу TDB, например так: tdbsam:/etc/samba/private/passwd.tdb.
примечание
Если у вас есть доступ к домену Windows, можно установить параметр security = domain, чтобы сервер Samba использовал доменные имена пользователей и не нуждался в базе данных паролей. Однако, чтобы пользователи домена имели доступ к компьютеру с сервером Samba, у каждого пользователя домена должна быть локальная учетная запись с таким же именем пользователя и на компьютере с сервером Samba.
Добавление и удаление пользователей
Первое, что вам потребуется для предоставления доступа Windows-пользователю к вашему серверу Samba, — добавить этого пользователя в базу данных паролей с помощью команды smbpasswd -a:
# smbpasswd -a username
Параметр username в команде smbpasswd должен быть действительным именем пользователя в вашей системе Linux.
Подобно обычной системной команде passwd, команда smbpasswd дважды запрашивает у вас ввод нового пароля пользователя. Если пароль проходит все необходимые проверки надежности, команда smbpasswd подтверждает создание нового пользователя.
Чтобы удалить пользователя, используйте параметр -x в команде smbpasswd:
# smbpasswd -x username
Чтобы временно деактивизировать пользователя, применяйте параметр -d; параметр -e заново активизирует такого пользователя:
# smbpasswd -d username
# smbpasswd -e username
Изменение паролей
Можно изменить пароль Samba, если с правами пользователя superuser запустить команду smbpasswd без каких-либо параметров или ключевых слов, кроме имени пользователя:
# smbpasswd username
Однако, если сервер Samba запущен, любой пользователь может изменить собственный пароль Samba, введя в командной строке команду smbpasswd.
Наконец, следует предупредить вас об одном месте в конфигурации, которого следует остерегаться. Если вы увидите в файле smb.conf строку, подобную приведенной, будьте осторожны:
unix password sync = yes
Эта строка приводит к тому, что команда smbpasswd изменяет обычный пароль пользователя вместе с паролем Samba. Результат может внести путаницу, особенно тогда, когда пользователь меняет свой пароль Samba на что-либо, не являющееся паролем Linux, а потом обнаруживает, что не может войти в систему. В некоторых версиях ОС этот параметр по умолчанию установлен в пакете сервера Samba!