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