我有一台使用简单文件共享的 XP Pro 系统。共享已针对特定文件夹启用,并且已启用“允许网络用户更改我的文件”。
从另一台机器复制(读取)共享文件时,其中一些文件(大约 1000 个中的 20 个)会出现“拒绝访问”错误。没有程序打开这些文件。
我必须去共享文件的机器并运行
CACLS C:\MySharedFolder\*.* /T /e /g Everyone:c
这解决了问题,所有文件都可以访问了。但是必须运行该命令很不方便。几天或几周后,错误又出现了。
此错误的根本原因是什么?似乎访问文件的程序(在本例中为 Eudora)错误地设置了权限 - 但为什么只在这台机器上出现?我有其他具有相同共享文件夹配置的机器,从未出现过此问题。
答案1
典型情况下,这可能是由用户剪切和粘贴文件到共享中。这意味着如果文件(在源处)设置为不从父文件夹继承权限,则当它们被剪切并粘贴到目标时,它们将保留其原有的权限。
答案2
这实际上不是一个答案,而是一个进一步的信息(由于字符限制,无法使用注释)。我仍在尝试理解和解决这个问题。
以下是 CACLS 中“坏”文件的权限(该权限阻止从另一台机器复制):
C:\...\Mail\descmap.pce BUILTIN\Administrators:F
NT AUTHORITY\SYSTEM:F
MARS\Tim:F
BUILTIN\Users:R
一个“好”的文件看起来是这样的:
C:\...\Mail\In.mbx Everyone:C
BUILTIN\Administrators:F
NT AUTHORITY\SYSTEM:F
MARS\Tim:F
BUILTIN\Users:R
“邮件”(父)文件夹的权限如下:
C:...>cacls mail C:...\Mail Everyone:(OI)(CI)C BUILTIN\Administrators:F BUILTIN\Administrators:(OI)(CI)(IO)F NT AUTHORITY\SYSTEM:F NT AUTHORITY\SYSTEM:(OI)(CI)(IO)F MARS\Guest:F CREATOR OWNER:(OI)(CI)(IO)F BUILTIN\Users:R BUILTIN\Users:(OI)(CI)(IO)(special access:) GENERIC_READ GENERIC_EXECUTE BUILTIN\Users:(CI)(special access:) FILE_APPEND_DATA BUILTIN\Users:(CI)(special access:) FILE_WRITE_DATA
“Everyone:C”和“BUILTIN\Administrators:F”属性不知何故从问题文件中删除。不同的文件在不同时间受到影响。似乎没有任何一致性。
答案3
这不是一个解决方案,而是一个可以比较笔记的东西......
我遇到了几乎完全相同的问题。但是,就我而言,我有一个用户 ID 登录到充当 PDC 的 Samba-3 服务器(因此我有机器加入域)。
此用户 ID 可以从 WinXP 机器访问文件,但在 Win7-PRO 机器上,他们会收到拒绝访问错误。文件不会从一个共享移动到另一个共享或从一个文件夹移动到另一个文件夹。它只是一个公司中每个人都可以访问的公共文件夹。
我尝试了所有解决方法,唯一能做的就是用干净的 Windows-7 副本重新启动工作站,问题就解决了。
就我而言,Windows7 与 SAMBA 的交互似乎是问题所在。有趣的是,我还有其他 Win7 机器,其他用户在使用时没有出现此问题,但这个特定的用户 ID 仅在 Win7 机器上出现问题。
我甚至删除了用户 ID 并重新创建了它,清除他们的漫游配置文件也无法解决问题。我还发现,如果我告诉用户使用与旧用户 ID 不匹配的新创建的用户 ID,问题仍然存在。
如果这台 Windows 7 工作站导致问题出现在用户 ID 上,则该问题随后会随着该用户 ID 传播到其他 Win-7 工作站。
重新运行一个 Win-7 工作站可以解决问题。