samba:net usershare add:无法将名称“Everyone”转换为 SID。网络响应不正确

samba:net usershare add:无法将名称“Everyone”转换为 SID。网络响应不正确

我正在尝试使用 GUI(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

并且它有一个 Samba 密码

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

知道我可能遗漏了什么吗?

答案1

如果你感兴趣的话,我有一个替代方案。如果你最初因为 SMB1 安全问题将服务器最小值设置为 SMB2,请将客户端最大值设置为 SMB3:

server min protocol = SMB2
client max protocol = SMB3

那么您的 usershare add 命令将不会导致错误。

当然,您将禁用浏览共享,正如我在此处解释的那样:如何告诉 Gigolo / GVFS 使用 SMBv2 进行 Windows 共享?

答案2

目前,我能重现该错误的唯一方法是在 smb.conf 中将最低服务器协议从 LANMAN1 更改为 SMB2(或 SMB3)。您的 smb.conf 中是否有此行:

server min protocol = SMB2

或者也许默认情况下它以某种方式被更改了。要找出原因,请执行以下操作:

testparm -sv | grep protocol

相关内容