本地 Windows 系统上的快速场景。
驱动器E:
采用 NTFS 格式化,具有以下布局和权限:
E:\ (JohnDoe)
E:\folder (Administrator)
E:\folder\subfolder (JohnDoe)
JohnDoe
具有对根目录的读/写访问权限。JohnDoe
具有读/写访问权限subfolder
JohnDoe
做不是可使用folder
JohnDoe
做不是有能力改变权限。
由于JohnDoe
无法访问folder
,因此无法列出内容,他必须手动输入路径E:\folder\subfolder
。没有“可点击”的方式从E:\
到subfolder
。
问题是:有没有办法JohnDoe
发现可访问的存在和路径subfolder
,而不能列出其父级的内容folder
?假设他没有被告知subfolder
的名称,并且权限与上述内容没有变化。
为了解决这个问题,请忽略通过暴力攻击猜测subfolder
的名字的可能性。只允许使用非暴力方法。
答案1
NTFS 不提供在其自身内发现此类远程子文件夹的方法,假设中间文件夹确实无法访问。要获得此类情报,您必须超越文件系统,也许可以通过询问其他文件来查找文档中包含的路径,或任何引用此类子目录的快捷方式。
如果 JohnDoe 拥有机器的高级访问权限,事情会变得更加有趣。此时检查打开的文件句柄可以揭示隐藏目录的存在。如果目录是共享的,则共享的打开文件列表也会显示它们的存在。但是这些方法不适用于“普通”用户。
答案2
为根目录中的子文件夹创建一个连接点。
E:\
E:\folder
E:\folder\subfolder
E:\junction-to-subfolder
使用命令:
MkLink /j "E:\junction-to-subfolder" "E:\folder\subfolder"
现在 JohnDoe 可以轻松查看和访问该子文件夹。
编辑:要移除连接而不影响目标,请使用:
RD "E:\junction-to-subfolder"
答案3
我使用过类似的设置,似乎用户会偶然发现该目录。您的问题在于现在它会被访问。如果要使用批处理脚本或驱动器映射,那么如果用户足够聪明,他们可能能够发现它。我知道在 Windows 中您可以隐藏驱动器号,但这可能还不够。
我建议,如果您不想让他们访问它,就不要给他们权限,如果可能的话。使用另一个帐户执行您正在执行的任何任务(例如,运行批处理脚本进行备份或任何其他操作)。
如果你不了解你想要实现什么,又不让用户知道,那么很难给出更具体的建议。也许还有其他方法。