
Для быстрого запуска системы совместного доступа к файлам установите необходимый пакет:
dnf install -y samba
После установки проверьте, активен ли демон:
systemctl status smb
Если он не запущен, активируйте его:
systemctl enable --now smb
Настройка конфигурационного файла /etc/samba/smb.conf требует указания рабочей группы, разрешений и параметров безопасности. Добавьте в конец файла секцию с параметрами доступа:
[Общий_каталог]
path = /mnt/share
read only = no
browsable = yes
valid users = @users
Затем создайте каталог и задайте права:
mkdir -p /mnt/share
chown -R root:users /mnt/share
chmod -R 2775 /mnt/share
Добавьте пользователя в систему и настройте ему пароль для аутентификации:
useradd -m пользователь
passwd пользователь
smbpasswd -a пользователь
Перезапустите службу для применения изменений:
systemctl restart smb
Проверьте доступность ресурса с клиентского устройства, используя команду:
smbclient -L //имя_сервера -U пользователь
Если подключение не устанавливается, проверьте настройки брандмауэра:
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
Дополнительно проверьте SELinux, если он активен:
setsebool -P samba_enable_home_dirs on
В таблице ниже приведены основные порты, используемые для работы службы:
| Протокол | Порт | Описание |
|---|---|---|
| SMB | 445 | Основной порт для связи |
| NetBIOS Name Service | 137 | Разрешение имен |
| NetBIOS Datagram Service | 138 | Передача сообщений |
| NetBIOS Session Service | 139 | Старый протокол соединения |
Этот фрагмент содержит четкие инструкции с командами и пояснениями. Если нужно добавить что-то еще, уточните.
Содержание статьи
Создание и настройка общих папок с разными уровнями доступа
Для управления доступом создаются каталоги с индивидуальными правами. Конфигурация выполняется в файле /etc/samba/smb.conf. Добавьте секции с различными параметрами доступа.
Пример конфигурации для каталога с доступом только для чтения:
[public]
path = /srv/samba/public
read only = yes
guest ok = yes
Директория создается вручную:
mkdir -p /srv/samba/public
chmod 755 /srv/samba/public
chown -R nobody:nogroup /srv/samba/public
Для каталога с аутентификацией:
[secure]
path = /srv/samba/secure
valid users = @users
read only = no
create mask = 0640
directory mask = 0750
Создание каталога и назначение прав:
mkdir -p /srv/samba/secure
chmod 770 /srv/samba/secure
chown -R root:users /srv/samba/secure
Добавление пользователей и установка пароля:
useradd -M -s /sbin/nologin user1
smbpasswd -a user1
Перезагрузка службы после внесения изменений:
systemctl restart smb
Разграничение прав можно также реализовать через списки управления доступом (ACL). Пример для группы «staff» с полным доступом и остальных пользователей только на чтение:
setfacl -m g:staff:rwx /srv/samba/secure
setfacl -m o::r /srv/samba/secure
Пример конфигурации и уровни доступа:
| Раздел | Путь | Доступ | Группа/Пользователи |
|---|---|---|---|
| [public] | /srv/samba/public | Чтение | Гости |
| [secure] | /srv/samba/secure | Чтение/Запись | Группа users |
После внесения изменений рекомендуется проверить доступ с клиентской машины:
smbclient -L //server_ip -U user1
Раздел содержит конкретные команды для управления пользователями и их правами, а также таблицу с основными директивами.
Решение распространённых проблем при настройке Samba
Ошибка: «NT_STATUS_ACCESS_DENIED» при подключении
Проблема может быть связана с некорректными разрешениями на каталог. Проверьте владельца и права:
ls -ld /путь/к/каталогу
При необходимости исправьте:
chown -R пользователь:группа /путь/к/каталогу
chmod -R 0770 /путь/к/каталогу
Ошибка: Клиент не видит общий ресурс
Проверьте, запущена ли служба:
systemctl status smb
Если не работает, запустите:
systemctl start smb
Убедитесь, что порты 137-139 и 445 открыты:
firewall-cmd --list-ports
При необходимости откройте:
firewall-cmd --add-service=samba --permanent
firewall-cmd --reload
Ошибка: «Failed to restart smb.service: Unit smb.service not found»
В системе может отсутствовать нужный пакет. Проверьте:
rpm -q samba
Если не установлен, добавьте:
dnf install samba
Ошибка: «NT_STATUS_BAD_NETWORK_NAME»
Проверьте, существует ли объявленный ресурс:
testparm -s
Если ресурс отсутствует, добавьте его в конфигурацию.
Ошибка: «The specified network password is not correct»
Добавьте пользователя в базу:
smbpasswd -a имя_пользователя
Убедитесь, что он есть в системе:
getent passwd имя_пользователя
Ошибка: Проблемы с кодировкой
Если русские символы отображаются некорректно, проверьте параметры:
[global]
unix charset = UTF-8
dos charset = CP866
Ошибка: «Unable to mount location – Failed to retrieve share list from server»
Проверьте, отвечает ли служба:
nmblookup -S имя_хоста
Если нет ответа, проверьте настройки NetBIOS.
Таблица часто используемых команд
| Команда | Описание |
|---|---|
| testparm | Проверка конфигурации |
| smbpasswd -a пользователь | Добавление пользователя |
| systemctl restart smb | Перезапуск службы |
| firewall-cmd —add-service=samba | Разрешение доступа |

