![更新至 FreeNAS 11.3 后拒绝访问 SMB 共享](https://linux22.com/image/751834/%E6%9B%B4%E6%96%B0%E8%87%B3%20FreeNAS%2011.3%20%E5%90%8E%E6%8B%92%E7%BB%9D%E8%AE%BF%E9%97%AE%20SMB%20%E5%85%B1%E4%BA%AB.png)
我之前的设置(FreeNAS 11.2)在 Windows 10 上有可用的 SMB 共享。在更新到 FreeNAS 11.3 SMB 共享后部分停止工作。如果有人能帮助我解决问题,我将不胜感激。
/mnt/tank/ [我的文件数据集] 上的任何现有或新创建的共享均不起作用,但 /mnt/SSD/ [我的 jails 数据集] 上的任何共享均正常工作。是否存在我看不到的继承选项或权限?
此新创建的共享有效:[针对用户 joe:family]
root@server[~]# ll /mnt/SSD/share
total 9
drwx------+ 2 root wheel uarch 2 Apr 30 12:35 ./
drwxr-xr-x 7 root wheel uarch 7 Apr 30 12:35 ../
root@server[~]# getfacl /mnt/SSD/share/
# file: /mnt/SSD/share/
# owner: root
# group: wheel
owner@:rwxpDdaARWcCos:fd-----:allow
group:family:rwxpDdaARWcCos:fd-----:allow
everyone@:--------------:fd-----:allow
但是,这个不起作用:
当与用户 joe 连接时(通过在 Windows 10 中映射网络驱动器),Windows 10 抛出错误:
Windows 无法访问 \\server\test
您无权访问 \\server\test。
root@server[~]# ll /mnt/tank/test
total 12
drwx------+ 2 root wheel uarch 2 Apr 30 12:40 ./
drwxrwx--- 14 root wheel uarch 14 Apr 30 12:40 ../
root@server[~]# getfacl /mnt/tank/test
# file: /mnt/tank/test
# owner: root
# group: wheel
owner@:rwxpDdaARWcCos:fd-----:allow
group:family:rwxpDdaARWcCos:fd-----:allow
everyone@:--------------:fd-----:allow
smbstatus
显示:由于我无法连接到它,因此这里缺少第二个共享(测试)。
root@server[~]# smbstatus
Samba version 4.10.13
PID Username Group Machine Protocol Version Encryption Signing
----------------------------------------------------------------------------------------------------------------------------------------
46477 joe users 192.168.178.xx (ipv4:192.168.178.xx:53566) SMB3_11 - partial(AES-128-CMAC)
Service pid Machine Connected at Encryption Signing
---------------------------------------------------------------------------------------------
share 46477 192.168.178.xx Thu Apr 30 13:38:29 2020 CEST - -
test 46477 192.168.178.xx Thu Apr 30 12:41:10 2020 CEST - -
Locked files:
Pid User(ID) DenyMode Access R/W Oplock SharePath Name Time
--------------------------------------------------------------------------------------------------
46477 1001 DENY_NONE 0x100081 RDONLY NONE /mnt/SSD/share . Thu Apr 30 13:38:29 2020
46477 1001 DENY_NONE 0x100081 RDONLY NONE /mnt/SSD/share . Thu Apr 30 13:38:29 2020
下一步该看哪儿?
- 这看起来不像是 Windows 10 身份验证的问题,因为 SSD 共享使用同一个帐户
- 有什么好方法可以调试此问题?我应该查看哪些日志?
- 是否有任何从数据集继承而来的有问题的选项?(哪些命令会揭示这些?)为了进行测试,我通过 FreeNAS 11.3u2 中的 GUI 创建了两个数据集,并将共享类型设置为“SMB”
答案1
尝试重置您用来访问 SMB 的帐户的密码。
ntlm 身份验证(在没有 kerberos 进行身份验证时由 SMB 协议使用)要求服务器保留用户密码的 NT 哈希。当通过 GUI 添加本地用户时,用户密码的 NT 哈希将存储在 freenas 配置文件中的用户条目中。然后使用它来生成 Samba 的 passdb.tdb 文件。
在 11.3 之前,FreeNAS 并没有非常注意确保配置数据库和 passdb.tdb 文件同步。这使得用户可以尝试通过 SMB 以 root 身份进行身份验证,失败后使用 google,然后运行“pdbedit -a root”
按此顺序执行操作导致 sqlite 数据库中没有 NT 哈希,但是由于 11.2 及更早版本未验证文件的内容,因此一切仍可正常工作。
现在快进到 11.3。从此版本开始,它会在系统数据集导入时同步 passbd.tdb 和 group_mapping.tdb。这意味着手动添加的 root 帐户将从 passdb.tdb 中删除。通过 GUI 重置密码会导致生成和存储 NT 哈希。如果这是您在 11.3 生命周期的其余时间的做法,那么 root 可以继续用作您的 SMB 帐户。
12.0 引入了 SMB 用户和非 SMB 用户之间的区别(复选框)。只有 SMB 用户才会添加到 passdb。内置用户(包括 root)不允许成为 SMB 用户。因此,当您的 FreeNAS 服务器处于 11.3 生命周期时,最好过渡到使用常规用户帐户而不是 root(以避免升级时出现潜在问题/挫折)。
答案2
尝试重新启动 smb 服务。更新后,我的启动时无法正常工作,但重新启动 smb 后,它就可以正常工作。似乎是启动过程中的一个错误。
答案3
我使用 FreeNAS 11.3-U5 将硬盘驱动器复制到 iXsystem 中的目录,但目录、文件夹和文件在 Win10 网络文件夹中不可见。我无法在 root 中或使用 SUDO 更改权限。
接下来,我在 FreeNAS 中创建了一个 SAMBA 目录。然后使用 rsync 将 Win10-invisible 目录的全部内容复制(而不是移动)到 SAMBA 目录(以保留电影和图片的时间戳):
rsync -rltD./原始目录/*./SAMBA目录
完成复制需要很长时间(一天或更长时间)。但是,SAMBA_directory 及其子目录/文件夹/文件现在在 Windows10 中可见,但内容不可读:无法查看图片或播放电影。然后我回到 FreeNAS 的 SAMBA_directory。我执行了
chmod -R 444 *
现在,所有文件都有了读取权限。而且似乎成功了。你可能需要进入每个包含文件的文件夹并执行 chmod 444。如果您在使用 -R 递归 chmod 命令时遇到问题。