Установка и настройка Samba на сервере AltLinux: пошаговое руководство
Ниже представлена подробная инструкция по установке и настройке файлового сервера на базе Samba в операционной системе AltLinux (подходит для версий Server, Workstation и Regular современных выпусков, например, п10 или п11).
1. Подготовка и установка пакетов
Откройте терминал и получите права суперпользователя (root).
- Обновите списки пакетов и установите Samba:
apt-get update
apt-get install samba samba-client
- Проверьте статус службы (пока она может быть не активна):
systemctl status smb
2. Резервное копирование конфигурации
Перед внесением изменений сохраните оригинальный файл конфигурации:
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
3. Настройка smb.conf
Откройте файл конфигурации в текстовом редакторе (например, nano или vi):
nano /etc/samba/smb.conf
Вам нужно отредактировать секцию [global] и добавить секцию для общей папки. Ниже приведен пример минимально рабочей конфигурации.
Секция [global]
Найдите эту секцию и приведите её к следующему виду (обратите внимание на кодировку для корректного отображения русских имен файлов):
[global]
workgroup = WORKGROUP
server string = Samba Server AltLinux
security = user
map to guest = Bad User
# Кодировки для корректной работы с русскими именами файлов
unix charset = UTF-8
dos charset = CP866
# Логирование
log file = /var/log/samba/log.%m
max log size = 50
Секция общей папки (пример)
В конец файла добавьте описание ресурса, который будет доступен пользователям. Например, общая папка /srv/samba/share:
[Share]
comment = General Share
path = /srv/samba/share
browseable = yes
writable = yes
guest ok = no
valid users = @sambashare
create mask = 0644
directory mask = 0755
Примечание: В примере выше доступ разрешен группе пользователей sambashare. Вы можете указать конкретного пользователя вместо @sambashare.
4. Создание директории и настройка прав
- Создайте директорию для общих файлов:
mkdir -p /srv/samba/share
- Создайте системную группу (если еще не существует) и добавьте в неё нужных пользователей:
groupadd sambashare
usermod -aG sambashare имя_пользователя
*(Замените `имя_пользователя` на реальное имя пользователя в системе)*
- Назначьте права на папку:
chown -R root:sambashare /srv/samba/share
chmod -R 0770 /srv/samba/share
5. Создание пользователя Samba
У пользователя должен быть существующий системный аккаунт в AltLinux. После этого нужно добавить его в базу паролей Samba:
smbpasswd -a имя_пользователя
Введите пароль дважды. Этот пароль будет использоваться при подключении с Windows-клиентов.
6. Настройка брандмауэра (Firewall)
В AltLinux часто используется firewalld. Необходимо открыть порты для Samba (139, 445/tcp и 137, 138/udp).
- Добавьте сервис samba в исключения:
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
Если вы используете iptables напрямую:
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT
iptables -A INPUT -p udp --dport 137 -j ACCEPT
iptables -A INPUT -p udp --dport 138 -j ACCEPT
service iptables save
7. Запуск служб
Запустите службы Samba и добавьте их в автозагрузку:
systemctl enable --now smb
systemctl enable --now nmb
(Служба winbind нужна только если сервер входит в домен Active Directory, для standalone сервера достаточно smb и nmb).
8. Проверка конфигурации
Перед перезапуском проверьте файл конфигурации на ошибки:
testparm
Если ошибок нет, перезапустите службы:
systemctl restart smb nmb
9. Подключение с клиента
Из Windows:
- Откройте «Проводник».
- В адресной строке введите:
\\IP-АДРЕС-СЕРВЕРА\Share - Введите логин и пароль пользователя, которого вы создали через
smbpasswd.
Из Linux (клиент):
smbclient //IP-АДРЕС-СЕРВЕРА/Share -U имя_пользователя
10. Возможные проблемы и решение
Не видны русские имена файлов: Убедитесь, что в
[global]прописаныunix charset = UTF-8иdos charset = CP866.Ошибка доступа (Permission denied):
- Проверьте права на папку (
ls -l /srv/samba/). - Проверьте, добавлен ли пользователь в группу
sambashare. - Если включен SELinux/SMACK (специфично для некоторых сборок AltLinux), может потребоваться изменение контекста безопасности, но в стандартной конфигурации обычно достаточно прав UNIX.
- Проверьте права на папку (
Сервер не виден в сети:
- Проверьте брандмауэр (
firewall-cmd --list-all). - Убедитесь, что службы
smbиnmbактивны. - Проверьте логи:
/var/log/samba/log.<имя_клиента>.
- Проверьте брандмауэр (