我刚刚将 Ubuntu 服务器升级到 14.04,这使 samba 升级到 4.1.6。我的公共共享(本地家庭网络,因此不必担心安全性,家人可以简单匿名地访问文件)已停止工作,即现在需要输入用户名和密码。
当我运行 testparm 时我得到:
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[share]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
workgroup = HOHWORKGROUP
server string = firewig
interfaces = eth1, 127.0.0.0/8, 192.168.10.0/24
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
name resolve order = lmhosts, wins, bcast, host
dns proxy = No
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d
idmap config * : backend = tdb
valid users = nobody
[share]
comment = share
path = /srv/samba/share/
force user = nobody
force group = nogroup
read only = No
create mask = 0777
force create mode = 0777
directory mask = 0777
force directory mode = 0777
guest ok = Yes
我似乎无法让我的 Windows (W7) 计算机匿名访问共享。不确定我的配置出了什么问题。
答案1
您必须谨慎选择。
valid users=nobody
例如,并不意味着nobody
允许用户登录。这意味着没有其他用户但 nobody
可以登录。
由于您显然可以允许访客访问,因此只需将其valid users=nobody
从全局部分中删除即可。
此外,虽然您已正确设置map to guest = bad user
,但您还必须检查guest
系统中哪个用户担任 的角色。显然,您只是假设它是 ,nobody
但事实并非如此。如果您不确定,您可以使用 手动指定它guest account = nobody
。不用说,nobody
必须存在于您的系统中!
接下来,您需要确保共享具有相应的 POSIX 权限nobody
。例如,如果您的文件权限允许nobody
读取共享中的文件但不允许修改它们,则writeable
中的选项smb.conf
将不会覆盖该权限。
现在我们进入 smb.conf 的共享部分,我们可以让它变得简单得多。如果您希望将所有操作映射到来宾帐户,则无需使用force user
and force group
。只需使用参数guest only = yes
即可。与guest ok = yes
此相结合,所有连接都将映射到正确的来宾帐户,在我们的例子中是nobody
。
结果(获得完全访客访问权限):
# chmod -R a+rwX /srv/samba/share
/etc/samba/smb.conf
-------------------
[global]
guest account = nobody
map to guest = bad user
[share]
path = /srv/samba/share
writeable = yes
guest ok = yes
guest only = yes
答案2
您能告诉我们您使用的是哪个内核版本吗?
当与最新的内核版本一起使用时,Samba 会出现问题,因为内核需要加密密码或存在其他问题。
我有一台 Ubuntu 14.04.1,我将 Samba 从 4.1 降级到 3.6.3-2ubuntu2,因为升级到 Samba 4.1 后无法正常工作。在这台机器上,如果我使用内核为 3.13 的 Samba 3.6,则无法正常工作,但如果我使用内核 3.2,则可以正常工作。
尝试将您的 grub 或 lilo 更改为使用较旧的内核进行启动,然后告诉我们是否有效。
答案3
为了实现匿名访问,创建伪造的 IPC$ 共享可能会有所帮助:
[IPC$]
guest ok = yes
read only = yes
path = /etc/samba/fakeIPC
valid users = @group-of-home-users, nobody
#or
# valid users = nobody
这帮我解决了一些问题。我不记得我在哪里读过这个。