Библиотека сайта 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 |