我正在尝试使用 Ubuntu 计算机为 Windows 计算机实验室(Vista Basic 和 XP)设置 Samba 共享。其中两个共享需要登录,但其中一个应该是公共共享。我的问题是,当 Windows 计算机尝试登录公共共享(未先登录另一个共享)时,它会提示输入用户名/密码。
我知道可以通过在 smb.conf 文件中设置“security = share”来解决此问题,但我也读到过这样做可能会导致其他安全问题,而“security = user”才是理想情况。我还知道 smb.conf 手册指出“security = user”会使 Windows 进行身份验证前访问共享。
所以我的主要问题是,是否可以对来宾共享使用“security = user”,而无需 Windows 提示登录?或者 Samba 不会对来宾共享做出例外?
这是我的 smb.conf 文件,供参考:
[全球的] 工作组 = hsbclib 服务器字符串 = %h 服务器(Samba,Ubuntu) dns 代理 = 无 日志文件 = /var/log/samba/log.%m 最大日志大小 = 1000 系统日志 = 0 恐慌行动 = /usr/share/samba/panic-action %d 遵守 pam 限制 = 是 unix 密码同步 = 是 passwd 程序 = /usr/bin/passwd %u passwd chat = *输入新的*密码:*%n\n *重新输入新的*密码:*%n\n *密码已成功更新* . pam 密码更改 = 是 映射到访客 = 坏用户 用户共享允许客人=是 安全 = 用户 客人同意 = 可以 来宾帐户 = publicuser 用户名映射 = /etc/samba/smbusers [打印机] 评论 = 所有打印机 可浏览 = 否 路径 = /var/spool/samba 可打印 = 是 创建掩码 = 0700 [打印$] 评论 = 打印机驱动程序 路径 = /var/lib/samba/printers [马巴士等级] 路径 = /srv/smb/mabusclass 可写 = 是 有效用户 = mabus, mabusclass [年鉴] 路径 = /srv/smb/yearbook 可写 = 是 有效用户=年鉴 [民众] 评论 = 免费公共存储 路径 = /srv/smb/public 可写 = 是 客人同意 = 可以
答案1
从http://blog.realcomputerguy.com/2010/12/samba-and-guest-shares-with-security.html?spref=tw
简而言之,您需要:
- 用户名映射文件。
- 有效的 'nix“guest”用户映射到 Windows 来宾帐户(在大多数发行版中为“nobody”)。
- 正确的 smb.conf 配置。
在此示例中,我们的用户名映射文件是 /etc/samba/smbusers。它将 'nix 用户映射到 Windows 用户。
在 /etc/samba/smbusers 中(许多发行版都包含此文件,但默认被注释掉了):
nobody = guest
在 /etc/samba/smb.conf 中:
[global]
...
security = user
Map to guest = Bad User
username map = /etc/samba/smbusers
...
-- no 'valid users =' line --
[theshare]
...
guest ok = yes
-- no 'valid users =' line --