Я пытаюсь открыть общий доступ к папке, используя графический интерфейс (nemo) или командную строку, например
net usershare add temp /home/administrator/tmp comment Everyone:R guest_ok=y
. В обоих случаях я получаю сообщение об ошибке
net usershare add: cannot convert name "Everyone" to a SID. The network responded incorrectly.
. множество потоков со схожими проблемами, но слегка отличающимися сообщениями, такими как
'net usershare' returned error 255: net usershare add: cannot convert name "Everyone" to a SID. The connection was refused.
или
'net usershare' returned error 255: net usershare add: cannot convert name "Everyone" to a SID. Invalid parameter.
, и они пытались найти решения, упомянутые там, но, похоже, ничего не решает.
Мой соответствующий раздел в файле smb.conf:
usershare max shares = 100
usershare allow guests = yes
usershare owner only = no
username map = /etc/samba/smbusers
encrypt passwords = yes
guest ok = yes
guest account = nobody
У меня есть пользователь nobody
cat /etc/passwd
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
, и у него есть пароль самбы
sudo smbpasswd -a nobody
Аналогичные команды
net usershare add temp /home/administrator/tmp bla nobody:F guest_ok=y
net usershare add temp /home/administrator/tmp bla nobody:F guest_ok=n
показывают одно и то же сообщение об ошибке.
У меня есть некоторые записи в /var/lib/samba/usershares
, но я не могу вспомнить, как они туда попали, но акции недоступны.
Один из примеров -
#VERSION 2
path=/home/administrator/Downloads/
comment=Everyone:R
usershare_acl=S-1-1-0:R
guest_ok=n
sharename=Downloads
Есть идеи, что я могу упустить?
У меня есть альтернатива, если тебе интересно. Если вы изначально установили для сервера min значение SMB2 из-за проблемы безопасности SMB1, установите для клиента max значение SMB3:
server min protocol = SMB2
client max protocol = SMB3
Тогда ваша команда userhare add не приведет к ошибке.
Вы, конечно, отключите просмотр общих папок, как я объяснил здесь: Как указать Gigolo / GVFS использовать SMBv2 для общих папок Windows?
На данный момент единственный способ воспроизвести эту ошибку - изменить минимальный протокол сервера с LANMAN1 на SMB2 (или SMB3) в файле smb.conf. У вас есть эта строка в вашем файле smb.conf:
server min protocol = SMB2
Или, может быть, она как-то изменилась по умолчанию. Чтобы узнать:
testparm -sv | grep protocol