Samba 网络驱动器上的 Excel 文件无法打开
Posted
技术标签:
【中文标题】Samba 网络驱动器上的 Excel 文件无法打开【英文标题】:Excel files on a Samba network drive don't open 【发布时间】:2021-12-14 13:14:19 【问题描述】:我有一个安装了 MS Office 的 Microsoft Server 2019 Standard。我还有一个 Linux 服务器,当他们登录时,通过 Samba 与他们的 Windows 帐户共享每个用户的 ~/windows/
目录。文件夹的权限始终设置为 777
并且归用户和组 @987654324 所有@,用户所属。
但是,当他们打开位于上述目录中的 .xslx 文件时,会出现以下错误:
“抱歉,我们找不到 \AppData\Local\Microsoft\INetCache\Content.MSO\111191F2.xlsx。它 它可能被移动、重命名或删除了吗?”
打开该位置会发现该文件确实存在,这暗示了一些权限问题。以管理员身份打开网络驱动器上的文件,这再次提示权限问题,但我无法调试。
我没有设置 Active Directory,磁盘使用net use
(使用用户密码)通过以下方式连接:
net use S: \\<address>\<user> <password>
至于 Samba 配置,这里是相关部分:
[homes]
browseable = no
path = /home/%S/windows
read only = no
valid users = %S
在本地保存文件并在工作后打开它没有任何问题。
在记事本中编辑简单的文本文件没有任何问题。 Samba 记录以下内容(它记录的内容更多,但这应该是相关部分):
[2021/11/01 11:27:49.692907, 3] ../source3/smbd/dir.c:1225(smbd_dirptr_get_entry)
smbd_dirptr_get_entry mask=[*] found test.txt fname=test.txt (test.txt)
[2021/11/01 11:27:49.692966, 3] ../source3/smbd/smb2_server.c:3195(smbd_smb2_request_error_ex)
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[5] status[STATUS_NO_MORE_FILES] || at ../source3/smbd/smb2_query_directory.c:158
[2021/11/01 11:27:49.694329, 2] ../source3/smbd/open.c:1447(open_file)
tom opened file test.txt read=Yes write=No (numopen=4)
[2021/11/01 11:27:49.694999, 3] ../source3/smbd/smb2_server.c:3195(smbd_smb2_request_error_ex)
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_ACCESS_DENIED] || at ../source3/smbd/smb2_getinfo.c:159
[2021/11/01 11:27:49.696187, 3] ../source3/smbd/smb2_read.c:421(smb2_read_complete)
smbd_smb2_read: fnum 2027028822, file test.txt, length=24 offset=0 read=24
运行accesschk.exe -ld S:
(由问题用户)产生以下结果:
S:\
DESCRIPTOR FLAGS:
[SE_DACL_PRESENT]
[SE_DACL_PROTECTED]
[SE_SELF_RELATIVE]
OWNER: S-1-5-21-2603346316-3644132649-3033319823-1025
[0] ACCESS_ALLOWED_ACE_TYPE: S-1-5-21-2603346316-3644132649-3033319823-1025
[OBJECT_INHERIT_ACE]
[CONTAINER_INHERIT_ACE]
FILE_ALL_ACCESS
[1] ACCESS_ALLOWED_ACE_TYPE: S-1-22-2-1000
[OBJECT_INHERIT_ACE]
[CONTAINER_INHERIT_ACE]
FILE_ALL_ACCESS
[2] ACCESS_ALLOWED_ACE_TYPE: Everyone
[OBJECT_INHERIT_ACE]
[CONTAINER_INHERIT_ACE]
FILE_ALL_ACCESS
[3] ACCESS_ALLOWED_ACE_TYPE: S-1-22-2-1000
FILE_ALL_ACCESS
[4] ACCESS_ALLOWED_ACE_TYPE: S-1-5-21-2603346316-3644132649-3033319823-1025
FILE_ALL_ACCESS
[5] ACCESS_ALLOWED_ACE_TYPE: CREATOR OWNER
[OBJECT_INHERIT_ACE]
[CONTAINER_INHERIT_ACE]
[INHERIT_ONLY_ACE]
FILE_ALL_ACCESS
[6] ACCESS_ALLOWED_ACE_TYPE: CREATOR GROUP
[OBJECT_INHERIT_ACE]
[CONTAINER_INHERIT_ACE]
[INHERIT_ONLY_ACE]
FILE_ALL_ACCESS
任何帮助将不胜感激!
【问题讨论】:
为了帮助您,我们需要知道您是否有 AD;smb.conf
的有效部分。您在其下共享用户目录的用户是什么?下次 - 这个问题更适合超级用户。
我编辑了答案以(希望)包含此信息。
这样好多了。您是否尝试过编写一个简单的文本文件,对其进行编辑并保存(例如通过记事本)?它对你有用吗? smbd.log 文件说什么(不要忘记提高日志记录级别)? ~/windows/
目录的权限是什么?该用户是否属于任何组?
我再次编辑了问题以包含此信息。
谢谢。你能发布 Sysinternals (docs.microsoft.com/en-us/sysinternals/downloads/accesschk) accesschk.exe -ld \\<address>\<user>
的结果吗? (或 S:)
【参考方案1】:
Go to File -> Options -> Trust Center -> click on Trust Center Settings -> Trusted Locations -> select "Allow Trusted Locations on my network(not recommended"
然后点击信任中心下的“文件阻止设置”,
取消选中以下或其他与您的 Excel 版本有关的选项。
"Excel 4 Workbooks”
"Excel 4 Worksheets”
"Excel 3 Worksheets”
"Excel 2 Worksheets”
"Excel 4 Macrosheets and Add-in files"
"Excel 3 Macrosheets and Add-in files"
"Excel 2 Macrosheets and Add-in files"
点击确定。
关闭所有 excel 文件并尝试从网络共享打开该 excel 文件。
【讨论】:
Allow Trusted Locations on my network
已被检查,无事可做。至于文件块设置,遗憾的是取消选中似乎不起作用(同样的错误)。【参考方案2】:
我只记得您可能缺少 samba 用户映射文件,该文件将 windows 用户映射到 *nix 用户。
在[global]
部分你需要添加
[global]
user map = /<path>/mapusers.txt
详情请见man pages。
在文本文件mapusers.txt
中,每个映射需要一行。
在您的情况下,所有 windows 用户都映射到一个 linux 用户或组:
linux_user = windows_user
或
@linux_group = @windows_group
【讨论】:
以上是关于Samba 网络驱动器上的 Excel 文件无法打开的主要内容,如果未能解决你的问题,请参考以下文章
os.path.isfile() 为 linux smb 网络驱动器上的文件返回 false
linux服务器的所有服务web/dns/dhcp/vsftp-nfs-samba的配置