Библиотека сайта 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.
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. Настройка файлового сервера с доступом для чтения и записи |