Вики / Службы и systemd
Samba (общие папки SMB)
Файловые шары для Windows и не только — SMB-сервер, пользователи, монтирование.
Samba реализует протокол SMB/CIFS — общие папки, совместимые с Windows
(и с Linux/macOS). Сервер smbd (файлы) + nmbd (имена); конфиг /etc/samba/smb.conf.
В отличие от nfs (мир Linux, по UID/GID), SMB удобнее для смешанных сред и аутентификации по логину/паролю.
systemctl status smbd
ss -tlnp | grep -E ':445|:139' # слушает ли SMB (см. ss)
/etc/samba/smb.conf — глобальная секция и шары:
[global]
workgroup = WORKGROUP
server string = files
map to guest = bad user
[share]
path = /srv/share
read only = no
valid users = alice @smbusers
create mask = 0664
directory mask = 0775
sudo apt install samba
sudo smbpasswd -a alice # завести SMB-пароль (ОТДЕЛЬНО от системного!)
sudo smbpasswd -e alice # включить пользователя
testparm # проверить синтаксис smb.conf
sudo systemctl restart smbd
smbstatus # кто подключён, какие файлы открыты, блокировки
smbclient -L //10.0.0.1 -U alice # список шар
smbclient //10.0.0.1/share -U alice # интерактивно (ftp-подобно: get/put)
sudo apt install cifs-utils
sudo mount -t cifs //10.0.0.1/share /mnt/s -o username=alice,uid=1000,gid=1000
# постоянно — креды в файле (не светить пароль в fstab):
# /etc/smbcred: username=alice / password=...
# /etc/fstab: //10.0.0.1/share /mnt/s cifs credentials=/etc/smbcred,_netdev,nofail 0 0
sudo mount -t cifs ... -o vers=3.0 # явная версия протокола (если старый сервер)
NT_STATUS_LOGON_FAILURE
Неверный SMB-пароль/пользователь. SMB-пароль задаётся отдельно smbpasswd -a (это
не системный пароль). Юзер должен существовать в системе (users-groups).
NT_STATUS_ACCESS_DENIED
Системные права на каталог (path) или valid users/read only в smb.conf.
Проверь и permissions, и секцию шары (smbstatus/testparm).
Не видно сервера/шары
Порт SMB 445/tcp закрыт (firewall) или служба не запущена. testparm для
конфига; systemctl status smbd. Проверь доступность: nc -zv host 445.
Mount: «host is down» / protocol negotiation failed
Несовпадение версии SMB. Добавь -o vers=3.0 (или 2.1). Очень старый SMBv1 в
новых ядрах отключён — не используй.
Кириллица/права в именах файлов
unix charset = UTF-8; права новых файлов — create mask/directory mask,
force user/force group для единого владельца.
sudo smbpasswd -a user # SMB-пароль (отдельно от системного!)
testparm # проверить smb.conf
smbstatus # кто подключён / открытые файлы
smbclient -L //host -U user # список шар
sudo mount -t cifs //host/share /mnt -o credentials=/etc/smbcred,vers=3.0
# smb.conf: [share] path= / valid users= / read only=no
См. также
- Файрвол (nftables / ufw) — Сеть
- Пользователи и группы — Пользователи и права
- NFS (сетевая ФС) — Хранилище и ФС