我正处于一个漫长而艰巨的解决 Windows 权限困惑的过程之中,并且希望对以下内容得到一些澄清。
我想提供一个 Windows 共享,以便网络上的任何匿名 Windows 计算机(我们不使用域控制器)都可以键入\\servername\sharename
并对其中的文件具有只读访问权限。
我知道的:
- “Everyone”组不包含“匿名”SID。(不过奇怪的是,该文章并不“适用于” 2008 R2......)
- 文件本身的权限有两个“级别”(可能不是最好的词):共享权限和 NTFS 权限。(即共享和存储管理 -> 属性 -> 权限)
- 有一些陷阱关于在没有域控制器但多台机器上具有相同名称的用户帐户的环境中操作。
我认为我知道的是:
- “使网络服务可被发现”不应该对适当许可的共享的可访问性产生影响。
- 还必须配置 NTFS 权限才能访问此共享 - 而不仅仅是共享权限!(?)(尽管共享和存储管理声称它们仅适用于本地访问。)
- 即使“Everyone”组明确引用本地用户帐户,也不应该将其排除在访问权限之外,因为以与服务器本地相同的用户名登录的客户端计算机将尝试以该用户的身份进行身份验证,如果密码不同,则会被拒绝。(
*groan*
)
我不知道的是:
- 是否存在与缓存凭据或服务器响应相关的问题?每次尝试连接共享后,我是否应该重新启动测试客户端工作站?
- “Guest”帐户是否与此有关,无论是共享还是 NTFS 权限?
- 我是否正确地观察到需要配置具有读取权限的“匿名登录”两个都共享和 NTFS 权限?“Everyone”组也是如此吗?
答案1
首先,设置对共享的匿名访问并不是那么糟糕,您只需要在每个人中包含匿名(您实际上自己链接到它):
- 打开
Local Group Policy
管理器(gpedit) - 计算机配置
- Windows 设置
- 安全设定
- 当地政策
- 安全选项 -
Network access: Let Everyone permissions to apply to anonymous users
从禁用到启用 - 更改
Network access: Restrict anonymous access to Named Pipes and Shares
为已禁用 Network access: Shares that can be accessed anonymously
- 设置您正在共享的共享名称。
至于共享本身。将 设置Share Permissions
为“所有人 - 修改”和“管理员 - 完全控制”。然后将 NTFS 权限设置Administrators - Full Control
为Everyone - <whatever rights needed>
这应该可以满足您的需要。
答案2
需要做三件事来为“Everyone”组下的匿名用户设置访问权限,这比明确使用“ANONYMOUS LOGON”更简洁:
1. 创建文件共享
- NTFS 权限:为“所有人”组设置“读取并执行”、“列出文件夹内容”和“读取”权限
- 共享权限:为“所有人”组设置“读取”
2.调整本地安全策略
打开“本地安全策略”,导航到安全设置->本地策略->安全选项,然后设置:
Network access: Let Everyone permissions apply to anonymous users
-已启用Network access: Restrict anonymous access to Named Pipes and Shares
-已禁用- 编辑
Network access: Shares that can be accessed anonymously
为您创建的共享的名称. (格式不明确,但不包括服务器名称,如果您需要多个,则假定这是一个逗号分隔的列表。)
3. 允许无密码访问
- 打开“高级共享设置”,可以从控制面板中的“网络和共享中心”打开,也可以通过单击目录上的属性中的链接(在密码保护下)。
- 将“密码保护的共享”设置更改为关闭。
其他说明:
- 需要在 NTFS 和共享级别上为用户授予权限
- 考虑一下在以用户名与服务器上的用户名匹配的用户身份登录的机器上进行的任何测试都是无用的(但不需要重新启动真正的测试机器)
答案3
我发现这给了我正在寻找的类似的东西。下面的链接将为匿名用户提供只读访问权限。无需任何凭据。如果您想在添加访客帐户的步骤中添加 RW 访问权限,只需授予完全访问权限而不是只读访问权限。
http://nikolar.com/2015/03/10/creating-network-share-with-anonymous-access/