我在使用 Samba 服务器时遇到了一些奇怪的问题。我在 Ubuntu 10.10 上使用 Samba 版本 3.5.4。
我有两台 Windows XP 机器,一台在 Ubuntu 上安装 VirtualBox,另一台在办公室使用笔记本电脑。VirtualBox 上的 Windows 机器在访问共享文件夹时没有问题,但笔记本电脑无法访问所有共享内容。
笔记本电脑面临的问题如下。
ext3 驱动器上的共享文件夹访问没有问题,但 NTFS 和 FAT32 驱动器(已安装的驱动器)上共享的内容无法访问。当我尝试打开共享文件夹时,它会要求输入用户名和密码,但我提供后它不接受。(即使我提供了管理员登录详细信息)。
我将办公室笔记本电脑中的工作组值更改为域名,但问题仍然存在。
这是smdb.conf
我正在使用的:
[global]
workgroup = XXX.XXX.ORG
server string = %h server (Samba, Ubuntu)
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
dns proxy = No
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d
guest ok = Yes
[homes]
comment = Home Directories
[printers]
comment = All Printers
path = /var/spool/samba
read only = No
create mask = 0700
printable = Yes
browseable = No
[print$]
comment = Samba server's CD-ROM
path = /cdrom
force user = nobody
force group = nobody
locking = No
之前工作组定义为“HOMENET”,在办公室笔记本电脑上将其更改为域名,以为是问题所在,但无济于事。
答案1
最终,这可能是防火墙问题。如果我没记错的话,samba 服务器与虚拟化 Windows 在同一台 PC 上运行。根据 VirtualBox 的网络设置,samba 服务器可能将虚拟化 Windows 视为“本地”。
但是,当尝试从第二台 PC(办公室笔记本电脑)获取访问权限时,Samba 服务器肯定不会将该 PC 视为本地 PC。我的建议是关闭 Samba 服务器上的防火墙一分钟(仅用于测试)。遗憾的是,我无法告诉您如何执行此操作,因为我正在手动编写防火墙规则集,并且从未通过 GUI 应用程序管理防火墙,但这应该不是什么大问题。
如果您想知道:防火墙很可能会出现您收到登录提示但无法访问数据的情况。从 SMB 协议的角度来看,登录和访问数据是不同的操作,它们可能在不同的端口上运行并双向交换数据。
甚至有可能笔记本电脑的防火墙就是罪魁祸首。
还有一种可能性:在 samba 配置中,有一个简单的访问管理。例如,您可以确定允许每个共享或全局访问哪些 IP。可能您必须明确允许非本地 IP 地址访问;我现在记不清了。
我还有一个额外的想法,但希望你首先做我上面提到的测试(关闭笔记本电脑和 samba 盒上的防火墙,在 samba 配置中明确设置 IP ACL 以授予对笔记本电脑 IP 的访问权限)。
干杯,
比纳鲁斯
答案2
很可能是您的文件系统权限错误。如果您的磁盘以错误的用户身份安装(并且具有 700 或类似的权限),samba 将不会显示这些。
您可以开始使用 samba 日志调试问题:/var/log/samba/
。
更改工作组无关紧要,工作组的全部意义在于区分列表中显示的机器。这不是访问控制。