好吧伙计们,我认为这是不可能的,但是:
有一个客户需要允许域用户读取目录中的文件。
问题是,他不希望他们浏览目录。
基本上,他们知道文件名和位置,因此可以直接打开它。(假设他们将整个路径\文件名粘贴到文件/打开对话框中。)
有什么办法可以做到这一点?
此外,他们不应该能够看到目录结构,尽管这可能没问题。
我的想法是将所有这些文件放在应用程序前端后面,向 (Web) 应用程序授予权限,并删除所有域用户对这些文件的直接访问权限。利用应用程序安全性。
欢迎提出其他方法建议。我没有应用程序架构的完整细节,但由于它完全基于文件,我觉得需要编写一个前端来处理这个问题。(请注意,我是一个应用程序人员,而不是管理员。我只在电视上扮演管理员......我确实知道足够多的管理员东西,非常危险,所以不需要太简单)
答案1
这应该相当容易。在共享上启用 ABE(基于访问的枚举),并确保在共享内的文件和文件夹上正确设置 NTFS 权限。
http://technet.microsoft.com/en-us/library/dd772681(WS.10).aspx
另外,绕过遍历检查用户权限授予 Everyone 组(默认情况下)遍历他们没有 NTFS 权限的文件夹的能力,以便获取他们有 NTFS 权限的文件。操作如下:
授予 Everyone 组对共享的更改和读取权限。
在共享中的文件夹和文件上设置适当的 NTFS 权限。
然后用户可以通过以下方式直接访问文件
\\servername\sharename\foldername\filename
只要您正确设置了共享和 NTFS 权限,用户就能够访问相应的文件,而不能浏览共享的内容。
答案2
您的设置存在问题(假设我正确理解为“将所有文件放在一个目录中”),聪明的客户端可以猜出其他人的文件名,并访问他们的数据,因此他们不能浏览并不重要,重要的是他们可以拿起按名称输入任何文件,这意味着其他客户端的文件。
换句话说,隐蔽性并不意味着安全,只是意味着看不见,摸不到。稍有想象力的人就会看穿这一点。
我会重新考虑这种方法,并可能将每个客户端隔离到只有他们才有权限的子目录中。然后,您将能够仅通过共享客户端的特定目录级别向上将客户端隔离到该位置……并且他们可以浏览他们想要的所有内容,因为没有其他内容可看。当他们连接/登录时,他们只能访问“他们的目录”……其他目录并不重要,因为他们无法访问它们(缺乏正确的权限)。
答案3
在 Windows 中共享特定目录(不再需要更高目录)非常简单,只需右键单击所需文件夹,单击“共享”,然后添加用户即可。
当他们想要访问它时,他们将使用 UNC 路径 \\server.domain.local\name_of_shared_folder
就是这样!*
*请确保 DNS 设置正确。再检查一下防火墙。