我今天早上完成了 Samba 的配置。我用 Mac 连接到它,我可以读取目录、打开文件并删除它们。它正常工作了 :-) 然后我出于不相关的原因重新启动了 Mac,现在我无法再次打开共享。这仅仅是在我可以访问它几个小时之后,而且我当时没有重新启动 SMB 服务器。两者之间的网络很好,因为我在输入时从 Mac 登录到服务器。
这是我的 Ubuntu 机器,我刚刚将它组装起来用于文件和备份,以及一些常见的 unix 服务:
Linux case 3.16.0-30-generic #40~14.04.1-Ubuntu SMP Thu Jan 15 17:43:14 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
我设置了samba,testparm的相关结果如下:
[global]
server string = %h server (Samba, Ubuntu)
server role = standalone server
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
idmap config * : backend = tdb
[open-share]
path = /mnt/raid/smb-shared
valid users = james
read only = No
guest ok = Yes
我的 Mac 正在运行 Yosemite(OS X 10.10.4)。
我已经重新启动了 Mac,并且再次设置了 smb 密码后重新启动了 smbd。
如果我在 Mac 上打开 Finder,在共享下我可以看到“case”,即服务器的名称。如果我单击“连接为...”,我可以输入我的名字和密码。我将名称条目从“James”更改为“james”,因为我猜想 smb 区分大小写。然后我输入密码,对话框只是摇晃,好像我输入错了一样。
运行 sudo smbstatus 得到以下结果: james@case:~$ smbstatus
Samba version 4.1.6-Ubuntu
PID Username Group Machine
-------------------------------------------------------------------
Service pid machine Connected at
-------------------------------------------------------
No locked files
我想这样就好了?
我下一步该尝试什么?我不知道它为什么停止工作了!
答案1
这是来自:https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html#SECURITY
安全(G)
此选项影响客户端如何响应 Samba,是 smb.conf 文件中最重要的设置之一。
默认值为 security = user,因为这是最常见的设置,用于独立文件服务器或 DC。
替代方案是 security = ads 或 security = domain ,它们支持将 Samba 加入 Windows 域
如果您主要想设置无密码共享(来宾共享),则应使用 security = user 并映射到 guest。这通常用于共享打印机服务器。
现在将解释不同的设置。
安全 = 自动
这是 Samba 中的默认安全设置,并导致 Samba 查阅服务器角色参数(如果设置)来确定安全模式。
安全 = 用户
如果未指定服务器角色,则这是 Samba 中的默认安全设置。使用用户级安全,客户端必须首先使用有效的用户名和密码“登录”(可以使用用户名映射参数进行映射)。加密密码(请参阅加密密码参数)也可以在此安全模式下使用。然后应用诸如 user 和 guest only if set 之类的参数,并且可能会更改在此连接上使用的 UNIX 用户,但前提是用户已成功通过身份验证。
请注意,请求的资源名称只有在服务器成功验证客户端身份后才会发送到服务器。这就是为什么在不允许服务器自动将未知用户映射到来宾帐户的情况下,来宾共享在用户级安全性下无法工作的原因。有关执行此操作的详细信息,请参阅映射到来宾参数。
安全 = 域
仅当使用 net(8) 将此计算机添加到 Windows NT 域中时,此模式才会正常工作。它要求将加密密码参数设置为 yes。在此模式下,Samba 将尝试通过将用户名/密码传递给 Windows NT 主域控制器或备份域控制器来验证用户名/密码,其方式与 Windows NT 服务器完全相同。
请注意,有效的 UNIX 用户以及域控制器上的帐户仍然必须存在,以允许 Samba 拥有有效的 UNIX 帐户来映射文件访问权限。
请注意,从客户端的角度来看,security = domain 与 security = user 相同。它仅影响服务器处理身份验证的方式,而不会以任何方式影响客户端看到的内容。
请注意,请求的资源名称只有在服务器成功验证客户端身份后才会发送到服务器。这就是为什么在不允许服务器自动将未知用户映射到来宾帐户的情况下,来宾共享在用户级安全性下无法工作的原因。有关执行此操作的详细信息,请参阅映射到来宾参数。
另请参阅密码服务器参数和加密密码参数。
请注意,请求的资源名称只有在服务器成功验证客户端身份后才会发送到服务器。这就是为什么在不允许服务器自动将未知用户映射到来宾帐户的情况下,来宾共享在用户级安全性下无法工作的原因。有关执行此操作的详细信息,请参阅映射到来宾参数。
另请参阅密码服务器参数和加密密码参数。
安全 = ADS
在此模式下,Samba 将充当 ADS 域中的域成员。要在此模式下运行,运行 Samba 的计算机需要安装和配置 Kerberos,并且需要使用 net 实用程序将 Samba 加入 ADS 域。
请注意,此模式不会使 Samba 作为 Active Directory 域控制器运行。
有关详细信息,请阅读 HOWTO 中有关域成员资格的章节。
默认值:security = USER
例如:security = DOMAIN