Я пытаюсь включить общий доступ к папкам через Samba на моем сервере Ubuntu 18.04;
Что я уже сделал:
- Отредактируйте /etc/samba/smb.conf следующим образом:
[global] workgroup = WORKGROUP interfaces = lo eth0 server role = standalone server server string = Samba Server %v security = user map to guest = bad user name resolve order = bcast host dns proxy = no bind interfaces only = yes log file = /var/log/samba/smb.log max log size = 10000 [Public] path = /samba/share writable = yes guest ok = yes guest only = yes read only = no create mode = 0777 directory mode = 0777 force user = nobody
- Запустите testparm с этим результатом
Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[Public]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parameters [global] bind interfaces only = Yes dns proxy = No interfaces = lo eth0 log file = /var/log/samba/smb.log map to guest = Bad User max log size = 10000 name resolve order = bcast host security = USER server role = standalone server server string = Samba Server %v idmap config * : backend = tdb [Public] create mask = 0777 directory mask = 0777 force user = nobody guest ok = Yes guest only = Yes path = /samba/share read only = No
- Перезапустить smbd.service
- Попытка входа через Windows; Windows не может получить доступ к \SERVERNAME\...
- Посмотреть журнал ошибок
[2019/06/23 21:05:54.565424, 0] ../lib/util/become_daemon.c:124(daemon_ready) STATUS=daemon 'smbd' finished starting up and ready to serve connections [2019/06/23 21:06:34.482176, 0] ../source3/smbd/ipc.c:843(reply_trans) reply_trans: invalid trans parameters
Я занимаюсь этим уже около 5 дней, есть ли у кого-нибудь подсказки, что происходит? Как это исправить? Мне просто нужна одна публичная папка и еще одна для ограниченного доступа.
решение1
только интерфейсы привязки = Да
интерфейсы = lo eth0
Вы говорите samba использовать только определенные интерфейсы, но тот, который вы указали ( eth0 ), не существует в Ubuntu 18.04. Это другая форма.
Если у вас нет причин что-либо указывать и вы предпочитаете позволить Samba разобраться с этим самостоятельно, я бы удалил эти две строки из smb.conf и перезапустил smbd:
sudo service smbd restart
Если вы хотите указать определенный интерфейс, используйте эту команду, чтобы узнать его настоящее имя:
nmcli device show | grep DEVICE
решение2
Теперь Windows использует WSD (обнаружение веб-сервисов?), который не включен в различные версии Samba, доступные начиная с Ubuntu 19.04.
На github есть проект, реализующий WSD, написанный на Python. Его можно найти по адресуhttps://github.com/christgau/wsddили напрямую загрузить наhttps://raw.githubusercontent.com/christgau/wsdd/master/src/wsdd.py
Частью хитрости использования этого метода является то, что вам нужно будет включить несколько портов в вашем брандмауэре:
Для работы wsdd должны быть открыты порты 5357/tcp и 3702/udp.
wsdd можно запустить из командной строки, или можно создать службу systemd для его запуска.
Это активная (возможно) область разработки Samba, и некоторую информацию о ней можно найти на сайтеhttps://www.ixsystems.com/community/resources/how-to-kill-off-smb1-netbios-wins-and-still-have-windows-network-neighbourhood-better-than-ever.106/и в настоящее время доступен в пользовательском репозитории Arch, и, по-видимому, в нескольких других дистрибутивах. Он также упоминается в AskUbuntu насделать общий ресурс Samba видимым в Windows «Сеть»
Начинаем как услуга
Я создал файл сервисного модуля systemd для wsdd, /lib/systemd/system/wsdd.service
его содержимое следующее:
[Unit]
Description=WSDD Network Service
BindsTo=smbd.service
After=smbd.service
[Service]
Type=simple
RemainAfterExit=yes
ExecStart=/usr/bin/wsdd
#ExecReload=/user/bin/wsdd
[Install]
WantedBy=multi-user.target
Затем я перешел wsdd.py
к /usr/bin/wsdd
и изменил его разрешения на 555 (чтение и выполнение).
Наконец, sudo systemctl enable wsdd.service
перезагрузка — и моя система Ubuntu теперь видна моим компьютерам Win10.