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

UnixForum





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

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

Оригинал: Samba first user account
Автор: Paul Cobbaut
Дата публикации: 24 мая 2015 г.
Перевод: A.Панин
Дата перевода: 14 июля 2015 г.

Глава 13. Первая учетная запись пользователя сервера Samba

13.1. Создание учетной записи пользователя сервера Samba

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

[root@RHEL52 samba]# useradd -s /bin/false sambanobody
[root@RHEL52 samba]# usermod -c "Anonymous Samba Access" sambanobody
[root@RHEL52 samba]# passwd sambanobody
Изменяется пароль пользователя sambanobody.
Новый пароль : 
Повторите ввод нового пароля : 
passwd: все данные аутентификации успешно обновлены.

13.2. Механизм владения файлами

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

[root@RHEL52 samba]# chown -R sambanobody:sambanobody /srv/samba/
[root@RHEL52 samba]# ls -al /srv/samba/writable/
итого 12
drwxrwxrwx 2 sambanobody sambanobody 4096 янв 21 06:11 .
drwxr-xr-x 6 sambanobody sambanobody 4096 янв 21 06:11 ..
-rwxr--r-- 1 sambanobody sambanobody    6 янв 21 06:16 hoi.txt

13.3. Утилита /usr/bin/passwd

Учетная запись пользователя sambanobody, которую мы создали в предыдущем разделе, пока еще не используется сервером Samba. На данный момент соответствующий пользователь всего лишь является владельцем созданных ними разделяемых директорий и файлов. Цель, которую мы должны достичь в данной главе, заключается в автоматическом использовании имени пользователя sambanobody при создании файлов посредством сервера Samba. Помните о том, что наш сервер все еще является общедоступным, поэтому никому не приходится узнавать параметры данной учетной записи пользователя и соответствующий пароль. Мы всего лишь хотим настроить безопасный файловый сервер на основе Linux.

Для решения этой задачи мы в первую очередь должны сообщить серверу Samba о данном пользователе. Мы можем сделать это, добавив учетную запись пользователя в базу данных пользователей сервера Samba с помощью утилиты smbpasswd.

[root@RHEL52 samba]# smbpasswd -a sambanobody
New SMB password:
Retype new SMB password:
Added user sambanobody.

13.4. База данных пользователей /etc/samba/smbpasswd

Для того, чтобы выяснить, куда сервер Samba помещает информацию об учетной записи (в данном случае) можно воспользоваться командой smbd -b. Переменная PRIVATE_DIR указывает на расположение файла базы данных пользователей сервера Samba с именем smbpasswd.

[root@RHEL52 samba]# smbd -b | grep PRIVATE
   PRIVATE_DIR: /etc/samba
[root@RHEL52 samba]# ls -l smbpasswd 
-rw------- 1 root root 110 янв 21 06:19 smbpasswd

Вы можете воспользоваться обычной утилитой cat для исследования содержимого файла базы данных пользователей сервера Samba с именем smbpasswd. Запись пользователя sambanobody не содержит пароля (он является скрытым).

[root@RHEL52 samba]# cat smbpasswd 
sambanobody:503:AE9 ... 9DB309C528E540978:[U          ]:LCT-4976B05B:

13.5. Модуль базы данных пользователей

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

root@ubu1110:~# testparm -v 2>/dev/null| grep 'passdb backend'
        passdb backend = tdbsam

13.6. Принудительное использование созданной учетной записи пользователя

Теперь, когда сервер Samba располагает информацией о созданной учетной записи пользователя, мы можем настроить наш разделяемый ресурс с доступом для чтения и записи таким образом, что владельцем созданных посредством сервера Samba файлов будет являться соответствующий пользователь. Для этого мы воспользуемся параметрами force user и force group файла конфигурации. После модификации файла конфигурации мы можем быть уверены в том, что владельцем всех файлов в разделяемой средствами сервера Samba директории, доступной для чтения и записи, будет являться один и тот же пользователь с именем sambanobody.

Ниже приведено обновленное описание нашего разделяемого ресурса с доступом для чтения и записи из файла конфигурации smb.conf.

[pubwrite]
 path = /srv/samba/writable
 comment = files to write
 force user = sambanobody
 force group = sambanobody
 read only = no
 guest ok = yes

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

13.7. Практическое задание: первая учетная запись пользователя сервера Samba

1. Создайте учетную запись пользователя для последующего использования совместно с сервером Samba.

2. Добавьте данную учетную запись в базу данных пользователей сервера Samba.

3. Создайте разделяемую директорию с доступом для чтения и записи и используйте директивы "force user" и "force group" для автоматической установки владельца создаваемых посредством сервера Samba файлов.

4. Проверьте работоспособность использованных директив с помощью утилиты smbclient, команды net use или Проводника Windows.

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

1. Создайте учетную запись пользователя для последующего использования совместно с сервером Samba.

useradd -s /bin/false smbguest
usermod -c 'samba guest'
passwd smbguest

2. Добавьте данную учетную запись в базу данных пользователей сервера Samba.

smbpasswd -a smbguest

3. Создайте разделяемую директорию с доступом для чтения и записи и используйте директивы "force user" и "force group" для автоматической установки владельца создаваемых посредством сервера Samba файлов.

[userwrite]
 path = /srv/samba/userwrite
 comment = everyone writes files owned by smbguest
 read only = no
 guest ok = yes
 force user = smbguest
 force group = smbguest

4. Проверьте работоспособность использованных директив с помощью утилиты smbclient, команды net use или Проводника Windows.

ls -l /srv/samba/userwrite (и проверьте имя владельца файлов)


Предыдущий раздел: Оглавление Следующий раздел:
Глава 12. Настройка файлового сервера с доступом для чтения и записи   Глава 14. Аутентификация клиентов сервера Samba