Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Серверы Linux. Часть VI. Знакомство с сервером Samba

Оригинал: Getting started with samba
Автор: Paul Cobbaut
Дата публикации: 24 мая 2015 г.
Перевод: A.Панин
Дата перевода: 14 июля 2015 г.

Глава 10. Начало работы с сервером Samba

10.1. Файл конфигурации /etc/samba/smb.conf

10.1.1. Команда smbd -b

Настройка сервера Samba осуществляется с помощью файла конфигурации smb.conf. Вы можете либо редактировать данный файл вручную, либо воспользоваться веб-интерфейсом, таким, как webmin или swat. Данный файл обычно расположен в директории /etc/samba. Вы можете определить точное расположение файла, воспользовавшись командой smbd -b.

[root@RHEL4b ~]# smbd -b | grep CONFIGFILE
CONFIGFILE: /etc/samba/smb.conf

10.1.2. Стандартный файл конфигурации smb.conf

В дистрибутиве RHEL/Fedora/CentOS стандартный файл конфигурации smb.conf содержит примеры использования параметров конфигурации сервера с пояснениями.

[paul@RHEL4b ~]$ ls -l /etc/samba/smb.conf 
-rw-r--r--  1 root root 10836 май 30 23:08 /etc/samba/smb.conf

Аналогично, в стандартном файле конфигурации smb.conf из соответствующего пакета программного обеспечения дистрибутивов Ubuntu и Debian можно обнаружить примеры использования параметров конфигурации сервера и пояснения относительно их назначения.

paul@laika:~$ ls -l /etc/samba/smb.conf 
-rw-r--r-- 1 root root 10515 2007-05-24 00:21 /etc/samba/smb.conf

10.1.3. Минималистичный вариант файла конфигурации smb.conf

Ниже приведен пример минималистичного варианта файла конфигурации smb.conf. Данный файл конфигурации позволяет запускать сервер Samba, причем компьютер, на котором запущен сервер, будет видим для других компьютеров в сети (в операционных системах от компании Microsoft список доступных компьютеров находится в меню "Сетевое окружение" и "Мое сетевое окружение").

[paul@RHEL4b ~]$ cat /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
[firstshare]
path = /srv/samba/public

10.1.4. Команда net view в ОС Windows

В примере ниже приведен вывод команды net view в ОС Microsoft Windows Server 2003 sp2. При рассмотрении данного вывода можно обнаружить, что серверы Samba, работающие под управлением дистрибутивов Red Hat Enterprise Linux 5.3 и Ubuntu 9.04, с минималистичными файлами конфигурации smb.conf видны компьютерам, работающим под управлением ОС от компании Microsoft, расположенным в той же сети.

C:\Documents and Settings\Administrator>net view
Server Name            Remark
----------------------------------------------------------------------
\\LAIKA                Samba 3.3.2                                             
\\RHEL53               Samba 3.0.33-3.7.el5                                    
\\W2003                                                                        
The command completed successfully.

10.1.5. Длинные строки в файле конфигурации smb.conf

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

valid users = Serena, Venus, Lindsay \
              Kim, Justine, Sabine \
              Amelie, Marie, Suzanne

10.1.6. Любопытная интерпретация файла конфигурации smb.conf

Любопытно, но факт: интерпретатор файла конфигурации smb.conf корректно обрабатывает такие синонимы в названиях параметров конфигурации, как create mode и create mask, а также (иногда) такие незначительные орфографические ошибки, как browsable и browseable. В некоторых случаях вы даже можете менять местами слова в названиях параметров конфигурации, к примеру, параметр конфигурации guest only идентичен параметру конфигурации only guest. А параметр конфигурации writable = yes аналогичен параметру конфигурации readonly = no.

10.1.7. Страница руководства man smb.conf

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

[root@RHEL4b samba]# apropos samba
cupsaddsmb       (8)  - export printers to samba for windows clients
lmhosts          (5)  - The Samba NetBIOS hosts file
net              (8)  - Tool for administration of Samba and remote CIFS servers
pdbedit          (8)  - manage the SAM database (Database of Samba Users)
samba            (7)  - A Windows SMB/CIFS fileserver for UNIX
smb.conf [smb]   (5)  - The configuration file for the Samba suite
smbpasswd        (5)  - The Samba encrypted password file
smbstatus        (1)  - report on current Samba connections
swat             (8)  - Samba Web Administration Tool
tdbbackup        (8)  - tool for backing up and ... of samba .tdb files
[root@RHEL4b samba]#

10.2. Утилита /usr/bin/testparm

10.2.1. Проверка синтаксиса файла конфигурации smb.conf

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

[paul@RHEL4b ~]$ testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[firstshare]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

10.2.2. Команда testparm -v

Любопытным параметром утилиты testparm является параметр -v, который позволяет вывести список всех глобальных параметров с их стандартными значениями.

[root@RHEL52 ~]# testparm -v | head
Load smb config files from /etc/samba/smb.conf
Processing section "[pub0]"
Processing section "[global$]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]
        dos charset = CP850
        unix charset = UTF-8
        display charset = LOCALE
        workgroup = WORKGROUP
        realm = 
        netbios name = TEACHER0
        netbios aliases = 
        netbios scope = 
        server string = Samba 3.0.28-1.el5_2.1
...  

В Samba 3.0.x в файле smb.conf могли использоваться около 350 параметров, имеющих соответствующие стандартные значения. Количество параметров возросло практически до 400 в Samba 3.5.x.

10.2.3. Команда testparm -s

Демоны Samba постоянно (раз в 60 секунд) проверяют содержимое файла конфигурации smb.conf, поэтому сокращение объема данного файла является разумной практикой. Но такой же разумной практикой является документирование вашего файла конфигурации, а также явное указание параметров конфигурации, которые имеют стандартные значения. Параметр -s утилиты testparm позволяет выполнить оба описанных выше действия. При использовании данного параметра будет сгенерирован файл конфигурации сервера Samba минимально возможного объема, в котором будут сохранены все установленные вами значения параметров конфигурации. Идея использования упомянутого параметра заключается в хранении параметров конфигурации вашего сервера Samba в отдельном файле (с таким именем, как smb.conf.full) и задействовании утилиты testparm для его разбора. В примере ниже показана последовательность выполнения описанных действий. В первую очередь в файле конфигурации с именем smb.conf.full осуществляется явная установка значения WORKGROUP параметра конфигурации workgroup.

[root@RHEL4b samba]# cat smb.conf.full 
[global]
workgroup = WORKGROUP

# Это пример документирования файла конфигурации smb.conf
# Две этих строки будут удалены после использования команды testparm -s

server string = Public Test Server

[firstshare]
path = /srv/samba/public

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

[root@RHEL4b samba]# testparm -s smb.conf.full > smb.conf
Load smb config files from smb.conf.full
Processing section "[firstshare]"
Loaded services file OK.

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

[root@RHEL4b samba]# cat smb.conf
# Global parameters
[global]
server string = Public Test Server

[firstshare]
path = /srv/samba/public
[root@RHEL4b samba]#

10.3. Утилита /usr/bin/smbclient

10.3.1. Использование утилиты smbclient для исследования сервера Samba

С помощью утилиты smbclient вы можете получить информацию об используемых и разделяемых с помощью вашего сервера Samba ресурсах. Она выведет информацию обо всех ваших разделяемых ресурсах, вашей рабочей группе, а также имени системы, принимающей анонсы от компьютеров и доменов (Master Browser). Параметр -N был добавлен для того, чтобы пользователю не требовалось вводить пустой пароль. После параметра -L должно следовать имя узла для получения информации.

[root@RHEL4b init.d]# smbclient -NL rhel4b
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.10-1.4E.9]

Sharename       Type      Comment
---------       ----      -------
firstshare      Disk      
IPC$            IPC       IPC Service (Public Test Server)
ADMIN$          IPC       IPC Service (Public Test Server)
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.10-1.4E.9]

Server               Comment
---------            -------
RHEL4B               Public Test Server
WINXP                

Workgroup            Master
---------            -------
WORKGROUP            WINXP

10.3.2. Анонимное использование утилиты smbclient

В примере ниже утилита smbclient используется для вывода информации об удаленном сервере Samba (в данном случае компьютер работает под управлением дистрибутива Ubuntu 11.10).

root@ubu1110:/etc/samba# testparm smbclient -NL 127.0.0.1
Anonymous login successful
Domain=[LINUXTR] OS=[Unix] Server=[Samba 3.5.11]

        Sharename       Type      Comment
        ---------       ----      -------
        share1          Disk      
        IPC$            IPC       IPC Service (Samba 3.5.11)
Anonymous login successful
Domain=[LINUXTR] OS=[Unix] Server=[Samba 3.5.11]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------
        LINUXTR              DEBIAN6
        WORKGROUP            UBU1110

10.3.3. Утилита smbclient и данные для входа в систему

В версиях ОС Windows, более новых, чем XP SP2 и 2003 SP1 не поддерживается возможность гостевого доступа к системе (при попытке осуществления гостевого доступа к системе возвращается ошибка NT_STATUS_ACCESS_DENIED). В данном примере показана методика передачи данных для входа в систему с помощью утилиты smbclient.

[paul@RHEL53 ~]$ smbclient -L w2003 -U administrator%stargate
Domain=[W2003] OS=[Windows Server 2003 3790 Service Pack 2] Server=...

        Sharename       Type      Comment
        ---------       ----      -------
        C$              Disk      Default share
        IPC$            IPC       Remote IPC
        ADMIN$          Disk      Remote Admin
...  

Предыдущий раздел: Оглавление Следующий раздел:
Глава 9. Вводная информация о сервере Samba   10.4. Утилита /usr/bin/smbtree