Внутреннее устройство Linux - Уорд Брайан. Страница 93

примечание

Если у вас есть доступ к домену 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!

12.4.4. Запуск сервера

Вам может потребоваться запустить сервер, если вы не устанавливали сервер Samba из пакета дистрибутива. Чтобы это выполнить, запустите команды nmbd и smbd со следующими аргументами (здесь параметр smb_config_file определяет полный путь для вашего файла smb.conf):

# nmbd -D -s smb_config_file

# smbd -D -s smb_config_file

Демон nmbd является сервером имен NetBIOS, а демон smbd выполняет реальную обработку запросов на совместное использование. Параметр -D определяет режим демона. Если вы измените файл smb.conf во время работы демона smbd, вы сможете уведомить демон об изменениях с помощью сигнала HUP или использовать команду перезапуска службы (такую как systemctl или initctl).

12.4.5. Диагностические файлы и журналы

Если что-либо происходит не так при запуске одного из серверов Samba, в командной строке появляется сообщение об ошибке. В то же время диагностические сообщения времени исполнения записываются в файлы журналов log.nmbd и log.smbd, которые обычно находятся в подкаталоге /var/log, таком как /var/log/samba. Здесь вы найдете также другие файлы журналов, например отдельные журналы для каждого клиента.

12.4.6. Конфигурирование совместного использования файлов

Чтобы экспортировать каталог клиентам SMB (то есть чтобы совместно с клиентом использовать какой-либо каталог), добавьте в файл smb.conf секцию, подобную приведенной ниже (здесь параметр label задает название для совместно используемого ресурса, а параметр path — полный путь к этому каталогу):

[label]

path = path

comment = share description

guest ok = no

writable = yes

printable = no

При совместном использовании каталогов полезны следующие параметры.

• guest ok. Разрешает гостевой доступ к совместному ресурсу. Синонимом является параметр public.

• writable. Значение yes или true делает ресурс доступным для чтения и записи. Не разрешайте гостевой доступ к совместному ресурсу, позволяющему чтение и запись.

• printable. Определяет выводимый на печать совместный ресурс. Этот параметр должен быть равен no или false для совместно используемого каталога.

• veto files. Предотвращает экспорт всех файлов, которые соответствуют указанным шаблонам. Каждый шаблон следует поместить между слешами (чтобы он выглядел как /pattern/). Следующий пример запрещает экспорт объектных файлов, а также любых файлов или каталогов с именем bin:

veto files = /*.o/bin/

12.4.7. Домашние каталоги

Можно добавить в файл smb.conf секцию [homes], если вы желаете экспортировать домашние каталоги пользователям. Такая секция должна выглядеть следующим образом:

[homes]

comment = home directories

browseable = no

writable = yes

По умолчанию сервер Samba считывает из файла /etc/passwd запись, которая относится к вошедшему в систему пользователю, чтобы определить его домашний каталог для секции [homes]. Однако, если вы не хотите, чтобы сервер Samba так поступал (то есть вам необходимо хранить домашние каталоги Windows в месте, которое отличается от обычных домашних каталогов Linux), можно использовать подстановку %S в параметре path. Вот как, например, можно переключить для пользователя каталог [homes] на каталог /u/user:

path = /u/%S

Сервер Samba подставит текущее имя пользователя вместо %S.

12.4.8. Совместное использование принтеров

Можно экспортировать все принтеры клиентам Windows, добавив секцию [printers] в файл smb.conf. Вот как выглядит эта секция, если вы применяете стандартную для Unix систему печати CUPS:

[printers]

comment = Printers

browseable = yes

printing = CUPS

path = cups

printable = yes

writable = no

Чтобы использовать параметр printing = CUPS, ваша версия сервера Samba должна быть настроена на применение библиотеки CUPS и связана с ней.

примечание

В зависимости от конфигурации вам может также потребоваться разрешить гостевой доступ к принтерам с помощью параметра guest ok = yes, вместо того чтобы предоставлять пароль или учетную запись каждому, кому необходим доступ к принтерам. Например, легко ограничить доступ к принтерам в пределах одной подсети, использовав правила брандмауэра.

12.4.9. Использование клиента Samba

Клиент Samba — команда smbclient — может осуществлять вывод и на совместно используемые ресурсы Windows или пользоваться ими. Эта команда удобна, когда вы оказываетесь в среде, в которой необходимо взаимодействовать с серверами Windows, не предлагающими дружественные к Unix средства коммуникации.

Чтобы начать работу с командой smbclient, применяйте параметр -L для получения списка совместно используемых ресурсов на удаленном сервере с именем SERVER:

$ smbclient -L -U username SERVER

Не обязательно указывать параметр -U username, если ваше имя пользователя в Linux совпадает с именем пользователя на сервере SERVER.

После запуска команды smbclient она запросит у вас пароль. Чтобы попытаться получить гостевой доступ к ресурсу, нажмите клавишу Enter; в противном случае введите ваш пароль для сервера SERVER. При успешном подключении вы должны получить перечень совместно используемых ресурсов, подобный приведенному: