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

UnixForum





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

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

Оригинал: A read only file server
Автор: Paul Cobbaut
Дата публикации: 24 мая 2015 г.
Перевод: A.Панин
Дата перевода: 14 июля 2015 г.

Глава 11. Настройка файлового сервера с доступом только для чтения

11.1. Создание разделяемой директории

Давайте начнем работу с сервером Samba с настройки простейшего файлового сервера с доступом только для чтения. Каждый клиент (даже анонимные клиенты, использующие гостевой доступ) получит возможность чтения содержимого разделяемых файлов.

Первым шагом является создание директории и размещение в ней нескольких тестовых файлов.

[root@RHEL52 ~]# mkdir -p /srv/samba/readonly
[root@RHEL52 ~]# cd /srv/samba/readonly/
[root@RHEL52 readonly]# echo "Сегодня холодно." > winter.txt
[root@RHEL52 readonly]# echo "Сегодня жарко." > summer.txt
[root@RHEL52 readonly]# ls -l
итого 8
-rw-r--r-- 1 root root 17 янв 21 05:49 summer.txt
-rw-r--r-- 1 root root 18 янв 21 05:49 winter.txt
[root@RHEL52 readonly]#

11.2. Настройка параметров разделяемой директории

11.2.1. Секция глобальных параметров [global] файла конфигурации smb.conf

В данном примере сервер Samba состоит в рабочей группе с именем WORKGROUP (которая является стандартной рабочей группой). Также мы задаем строку описания сервера, которую смогут увидеть пользователи, исследующие сеть с помощью команды net view, проводника Windows или утилиты smbclient.

[root@RHEL52 samba]# head -5 smb.conf
[global]
 workgroup = WORKGROUP
 server string = Public Anonymous File Server
 netbios name = TEACHER0
 security = share

Вы могли заметить строку security = share в приведенной выше секции файла конфигурации сервера. Данная строка устанавливает стандартный режим ограничения доступа к нашему серверу Samba. Установка режима доступа share позволяет клиентам (которыми могут являться утилита smbclient, любая версия ОС Windows, другой сервер Samba, ) предоставлять пароль для доступа к каждому из разделяемых ресурсов. Это один из вариантов использования протокола SMB/CIFS. Другой вариант использования данного протокола (называемый режимом пользователя, user mode) позволяет клиенту предоставлять комбинацию из имени пользователя и пароля перед тем, как сервер получит информацию о разделяемом ресурсе, к которому клиент желает получить доступ.

11.2.2. Секция настроек разделяемого ресурса [share] файла конфигурации smb.conf

Наш разделяемый ресурс будет носить имя pubread, причем в качестве пути (задаваемого с помощью параметра path) будет использоваться путь к созданной ранее директории. Каждый пользователь сможет получить доступ к данной директории (благодаря использованию значения параметра guest ok = yes) только для чтения (в соответствии со значением параметра read only = yes).

[pubread]
path = /srv/samba/readonly
comment = files to read
read only = yes
guest ok = yes

Ниже приведена очень похожая конфигурация, используемая сервером Samba из состава дистрибутива Ubuntu 11.10.

root@ubu1110:~# cat /etc/samba/smb.conf
[global]
workgroup = LINUXTR
netbios name = UBU1110
security = share
[roshare1]
path = /srv/samba/readonly
read only = yes
guest ok = yes

На самом деле, название используемого вами дистрибутива Linux не имеет решающего значения. Ниже приведена аналогичная конфигурация, используемая сервером Samba из состава дистрибутива Debian 6 и являющаяся по своей сути идентичной приведенной выше.

root@debian6:~# cat /etc/samba/smb.conf
[global]
workgroup = LINUXTR
netbios name = DEBIAN6
security = share
[roshare1]
path = /srv/samba/readonly
read only = yes
guest ok = yes

11.3. Перезапуск сервера

После тестирования файла конфигурации с помощью утилиты testparm следует перезапустить сервер Samba (для того, чтобы вам не пришлось ожидать начала распространения информации о разделяемом ресурсе между компьютерами сети).

[root@RHEL4b readonly]# service smb restart
Shutting down SMB services:                                [  OK  ]
Shutting down NMB services:                                [  OK  ]
Starting SMB services:                                     [  OK  ]
Starting NMB services:                                     [  OK  ]

11.4. Проверка наличия разделяемого ресурса

11.4.1. Проверка с использованием утилиты smbclient

Теперь вы можете проверить наличие разделяемого ресурса с помощью утилиты smbclient. Наш разделяемый ресурс pubread является четвертым разделяемым ресурсом из списка.

[root@RHEL52 samba]# smbclient -NL 127.0.0.1
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.33-3.7.el5]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       IPC Service (Public Anonymous File Server)
        global$         Disk 
        pub0            Disk 
        pubread         Disk      files to read
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.33-3.7.el5]

        Server               Comment
        ---------            -------
        TEACHER0             Samba 3.0.33-3.7.el5
        W2003EE 

        Workgroup            Master
        ---------            -------
        WORKGROUP            W2003EE

11.4.2. Проверка с использованием ОС Windows

Последний этап проверки наличия разделяемого ресурса заключается в чтении файла из разделяемой средствами сервера Samba директории с помощью компьютера, работающего под управлением ОС Microsoft Windows. В первую очередь мы должны использовать команду net use для монтирования разделяемой директории pubread в качестве дискового накопителя, обозначаемого с помощью буквы K:.

C:\>net use K: \\teacher0\pubread
The command completed successfully.

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

C:\>dir k:
 Volume in drive K is pubread
 Volume Serial Number is 0C82-11F2

 Directory of K:\

21/01/2009  05:49    <DIR>          .
21/01/2009  05:49    <DIR>          ..
21/01/2009  05:49                17 summer.txt
21/01/2009  05:49                18 winter.txt
               2 File(s)             35 bytes
               2 Dir(s)  13.496.242.176 bytes free

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

K:\>echo очень холодно > winter.txt
Access is denied.

K:\>

Или же, вы можете использовать проводник ОС Windows.

Проверка с использованием ОС Windows

11.5. Примечание об использовании утилиты netcat

Приведенный выше вывод командной оболочки ОС Windows был получен в консоли Linux благодаря использованию утилиты netcat с целью взаимодействия с командной оболочкой ОС Windows.

Данная утилита работает достаточно просто: она ожидает соединения с определенным портом компьютера, работающего под управлением ОС Windows, и исполняет бинарный файл командной оболочки cmd.exe после приема соединения. Утилита netcat аналогична утилите cat в том смысле, что она, как и утилита cat, не делает ничего, кроме передачи данных, но при этом утилита netcat предназначена для передачи данных по сети.

Для создания условий, необходимых для организации описанного соединения, следует выполнить следующую команду на компьютере, работающем под управлением ОС Windows (после загрузки версии утилиты netcat для ОС Windows).

nc -l -p 23 -t -e cmd.exe

После этого вы сможете установить соединение с данной машиной посредством утилиты netcat с любого компьютера, работающего под управлением Linux. В результате в вашей командной оболочке Linux будет выведено приветствие командной оболочки cmd.exe.

paul@laika:~$ nc 192.168.1.38 23
Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\>net use k: /delete
net use k: /delete
k: was deleted successfully.

11.6. Практическое задание: настройка файлового сервера с доступом только для чтения

1. Создайте директорию для предоставления каждому клиенту из сети доступа к файлам из нее только для чтения в подходящей для этого директории файловой системы (в соответствии со стандартном иерархии файловой системы FHS).

2. Убедитесь в том, что вы установили корректный идентификатор владельца созданной директории и файлы в ней являются общедоступными.

3. Разместите текстовый файл в созданной директории.

4. Предоставьте всем клиентам доступ к созданной директории по сети средствами сервера Samba.

5. Проверьте с вашего компьютера и отдельного компьютера (с помощью команд smbclient, net use, ) доступность для чтения файлов из разделяемой директории.

6. Создайте резервную копию файла конфигурации вашего сервера smb.conf с именем smb.conf.ReadOnlyFileServer.

11.7. Корректная процедура выполнения практического задания: настройка файлового сервера с доступом только для чтения

1. Создайте директорию для предоставления каждому клиенту из сети доступа к файлам из нее только для чтения в подходящей для этого директории файловой системы (в соответствии со стандартном иерархии файловой системы FHS).

Выберите один из следующих вариантов:

mkdir -p /srv/samba/readonly

mkdir -p /home/samba/readonly

Директория /home/paul/readonly не должна использоваться!

Директория /etc/samba/readonly также не должна использоваться!

Директория /readonly также не подходит!

2. Убедитесь в том, что вы установили корректный идентификатор владельца созданной директории и файлы в ней являются общедоступными.

chown root:root /srv/samba/readonly
chmod 755 /srv/samba/readonly

3. Разместите текстовый файл в созданной директории.

echo Hello World > hello.txt

4. Предоставьте всем клиентам доступ к созданной директории по сети средствами сервера Samba.

Файл конфигурации вашего сервера Samba smb.conf.readonly может выглядеть следующим образом:

[global]
 workgroup = WORKGROUP
 server string = Read Only File Server
 netbios name = STUDENTx
 security = share

[readonlyX]
 path = /srv/samba/readonly
 comment = read only file share
 read only = yes
 guest ok = yes

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

5. Проверьте с вашего компьютера и отдельного компьютера (с помощью команд smbclient, net use, ) доступность для чтения файлов из разделяемой директории.

В случае использования Linux: smbclient -NL 127.0.0.1

В случае использования Проводника Windows: Перейдите в директорию "Мое сетевое окружение".

В случае использования командной оболочки ОС Windows cmd.exe: net use L: //studentx/readonly

6. Создайте резервную копию файла конфигурации вашего сервера smb.conf с именем smb.conf.ReadOnlyFileServer.

cp smb.conf smb.conf.ReadOnlyFileServer

Предыдущий раздел: Оглавление Следующий раздел:
10.4. Утилита /usr/bin/smbtree   Глава 12. Настройка файлового сервера с доступом для чтения и записи