samba smbpasswd pdebit smbclient
Samba, SMB - протокол для создания общих папок между Linux-Linux, Linux-Windows и Windows-Windows.
Samba-клиент - устройство для подключения к общей папке
Samba-сервер - устройство, на котором находится общая папка
Основной конфигурационный файл /etc/samba/smb.conf
Установка
- Установить пакет samba
apt install samba -yПользователи
pdebit groupadd useradd usermod passwd smbpasswd 2. Создать пользователей и группы 1. Создать группу 2. Создать пользователей 3. Присвоить пользователям соответствующие группы 4. Выдать пользователям пароли
groupadd workers # создание группы
# создание пользователя
usermode -g workers user1 # изменение основной группы пользователя
passwd user1 # установка пароля- Добавить необходимых пользователей в базу samba
smbpasswd -a username
# При добавлении пользователя будет запрошен пароль
# Если необходимо создать записи для большого
# количества пользователей с одним паролем, сделайте так:
echo "123456" > pass
echo "123456" >> pass
# 2 раза потому что нужно повторить диалог
smbpasswd -as user1 < pass
smbpasswd -as user2 < pass
smbpasswd -as user3 < pass
smbpasswd -as boss < pass
# Если пароли должны быть разные, необходимо будет писать скрипт- Проверка пользователей
pdbebit -L
user1:10001:
user2:10002:
user3:10003:Настройка сервера
Публикация каталога с с анонимным доступом
- Создайте каталог, например /opt/public
- Открыть конфигурационный файл /etc/samba/smb.conf
- Удалить комментарии в vi можно командой:
g/^[#\n;]/d
- Удалить комментарии в vi можно командой:
Конфиг samba делится на блоки: 1. global - блок с общими настройками демона samba (можно не трогать) 2. homes - каталог для монтирования домашних каталогов 3. прочие блоки - служат для публикации отдельных сетевых ресурсов
- Удалите блоки идущие от блока
[homes]- Либо используйте параметры из них, что бы привести конфиг к следующему блоку:
[public] # можно использовать любое название
comment = For all users # комментарий
path = /opt/public # путь до папки
browseable = yes # видна или нет папка (типо как с скрытием WiFi)
read only = yes # доступно только для чтения
guest ok = yes # разрешить доступ анонимным пользователям
create mask = 0700 # Права задаваемые новосозданным файлам
directory mask = 0700 # Права задаваемые новосозданным каталогам- Сохраните изменения и перезагрузите службу smbd
Публикация каталогов с ограниченным доступом
При настройке прав доступа к каталогу через samba, необходимо учитывать, что для того что б выполнить операцию чтения списка файлов пользователь и/или служба, должна иметь права на выполнение, поэтому минимальный размер прав будет равен 5
- Создайте каталоги: например /opt/documents
- Настройте права для каталога
chmod -R 700 /opt/documents- Ключ "-R" говорит о том, что изменения должны коснуться и всех вложенных файлов и каталогов
3. Так как мы создавали каталог вручную, он получил владельцем нашего пользователя. А нам нужно установить uid и gid пользователя user1 1. Изменим владельца и группу каталога test1:
chown -R test1:test1 /opt/documents
# При использовании стандартных правил доступа, разграничить между пользователем и группой можно следующим образом:
chown boss:workers /opt/documents
# Таким образом, правила для пользователя будут одни, а для группы будут отдельными:
chmod 750 /opt/documents- Добавьте в блок
[global]параметр: inherit permissions = yes для включения наследования прав от каталога - Для публикации каталога documents в сети, добавьте в основной конфигурационный файл samba, следующие блоки:
[documents] # название
comment = Documents for workers # комментарий
path = /opt/documents # путь
browseable = yes # видимость
read only = no # только для чтения
writeable = yes # возможность вводить изменения
guest ok = no # разрешить доступ анонимным пользователям
create mask = 0755 # права создаваемых файлов
directory mask = 0760 # права создаваемых каталогов
valid users = boss @workers # у кого есть доступ к каталогу
read list = boss @workers # кто может читать
write list = boss # кто может писать- Сохраните изменения и перезагрузите службу smbd
Возможные проблемы
- Не удается создать пользователя
При создании обязательно использовать ключ -a. Также пользователя сначала нужно добавить в /etc/passwd с помощью команды useradd. Если проблема не решается, то попробуйте удалить пользователя командой
smbpasswd -x *username*А после снова добавьте его. Иногда пользователя нужно активировать вручную командой `
smbpasswd -e- Сервер не запускается после смены конфигураций
Убедитесь в том, что созданы все папки и используйте команду для проверки конфигов:
testparm- Не получается подключиться
# etc/hosts
127.0.0.1 localhost # не трогаем
127.0.1.1 debian # меняем debian на заданное имя устройства
--че-то ещё--Клиент
smbclient Для работы потребуется установить smbclient
apt install smbclient -yПроверка
# Команда для проверки доступных файлов на сервере
smbclient -L //172.16.8.10/
Password for [WORKGROUP/root]: # Можно просто нажать Enter
Sharename Type Comment
-------- ---- -------
public Disk folder for all users
documents Disk Documents for workers
print$ Disk Printer Drivers- -L - list опция отвечающая за вывод файлов
- //172.16.8.10/ - сервер samba, 2 слеша в начале обязательны
-
- При выполнении запросит пароль можно просто нажать Enter
# Команда для подключения
smbclient //172.16.8.10/documents -U boss%123456- //172.16.8.10/ - сервер samba, 2 слеша в начале обязательны
- /documents - папка к которой запрашиваем доступ. Указывается не физическое название, а логическое которое в файле конфигурации стоит как
[documents]Папка documents находится по пути **/opt/documents**, но в команде нужно указывать только конечную папку - -U boss%123456 - username + password как видно должны записываться как пользователь%пароль, при этом можно ввести только пользователя -U boss тогда система запросит пароль
Клиент Windows
- Зайти в панель управления
- Программы -> Включение или отключение компонентов Windows
- Включаем “Поддержка общего доступа к файлам SMB 1.0/CIFS”
- Перезагружаемся
Конфигурационный файл
Global
[global]
# Название рабочей группы готорой принадлежит сервер
workgroup = WORKGROUP
# Место храненния логов samba
log file = /var/log/samba/log.%m
# Максимальный размер файла логов в Кб
max log size = 1000
# Журнал будет вестись в файл
logging = file
# В случае сбоя выполнять panic-action
panic action = /usr/share/samba/panic-action %d
# Сервер одинок и не является частью домена
server role = standalone server
# Работать с ограничениями PAM или без них (no)
obey pam restrictions = yes
# Синхронизация учетных записей Samba и системы
unix password sync = yes
# Программа для изменения пароля
# Вместо '%u' подставляется имя пользователя
passwd program = /usr/bin/passwd %u
# Сообщения при изменении пароля
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
# Использует PAM для изменения пароля
pam password change = yes
# Обрабатывать запросы от неизвестных пользователей в
# качестве гостевых
map to guest = bad user
# Разрешает гостевой доступ тем у кого есть права на
# создание общих ресурсов
usershare allow guests = yesHomes и прочие
[homes]
# Комментарий к ресурсу
comment = Home Directories
# Отображать ли каталог в списке доступных ресурсов
# работает как с Wifi если отключить трансляцию ключа
browseable = no
# Доступ только на чтение?
read only = yes
# Доступ всем
public = yes
# возможность вводить изменения
writeable = yes
# Права задаваемые новосозданным файлам
create mask = 0700
# Права задаваемые новосозданным каталогам
directory mask = 0700
# Каким пользователям можно получать доступ к каталогу
# %S - только пользователю с именем равным названию ресурса
valid users = %S
# Путь до директории которая должна быть доступна по сети
path = /opt/sites
# Запретить или разрешить доступ анонимным пользователям
guest ok = yes
# Пользователи с доступом на чтение
read list = boss @workers
# Пользователи с доступом на запись
write list = @workers
# Вы можете указать отдельного пользователя, указав его
# логин в списке
# Либо указать целую группу, указав её названия и добавив в начало знак: @