这个问题在 Super User 上没有答案,我以为那是最好的地方,但没人知道。因为它与服务器有关,希望它能被转移到服务器故障,有人能在那里帮助我。
基本上,我想测试服务器上的安全性。我编写了一个 ASP 脚本,它只列出目录中的文件。IIS 登录的用户应被锁定,并且只能访问一个文件夹。该脚本返回了文件夹和文件的数量,但在尝试读取它们的实际名称时被拒绝访问。
该用户名为 testlockdown,有一个名为 closeddown 的组
我可以转到任何文件夹,右键单击并执行属性,然后单击安全性,单击高级和有效权限。
如果我检查来宾用户或 gusts 组,我可以看到没有复选框。如果我检查组对象已锁定,则没有复选框,但如果我检查用户 testlockdown,则有一堆(大约 6 个)对象带有勾选,包括列表、读取、创建。
我已经花了大约 2 个小时试图弄清楚这一点,打开审核,查看本地安全策略,创建其他用户和组......
我已经尽我所能了,但我仍然无法弄清楚它是如何获得这些权限的,以及它们为什么/来自哪里。
在我的测试中,我创建了一个名为 foo 的新文件夹,创建时它继承了管理员、创建者所有者(我未以此用户身份登录)系统和用户组。但是,在有效权限下,我再次拥有所有复选框!
从“net user testlockdown”的粘贴中我得到
用户名 testlockdown 全名 testlockdown 评论用户测试安全性 用户评论 国家代码 000(系统默认) 帐户活跃 是 帐户永不过期 密码最后设置时间 28/06/2009 19:22 密码永不过期 密码可更改 28/06/2009 19:22 需要密码 是 用户可以更改密码 是 允许工作站全部 登录脚本 用户资料 主目录 最后登录 03/08/2009 03:56 允许登录时数 全部 本地群组会员资格*已锁定 全球集团会员资格 *无 命令已成功完成。
我看到本地群组成员资格旁边有一颗星号,但我不明白这是什么意思,也不知道它是否相关。
我最好的猜测是,不知何故,该用户从用户组获得了权限,但是我看不到或理解为什么。
我希望我已经提供了足够的信息。我为此而烦恼不已!如果您需要更多信息,我很乐意提供。
编辑- 我应该说,我知道我可以添加拒绝权限,但这并不是重点,因为它应该是不必要的,
谢谢
答案1
您正在查看的内容称为“特殊权限”。我强烈建议您阅读这Windows 安全中的一篇文章详细介绍并解释了 NTFS 安全性的工作原理。
警告:使用 IIS 测试安全性时要小心。IIS 有另一层安全性,它与 NTFS 无关,但它会强制执行 NTFS 权限。此外,锁定特定用户的文件夹不会影响匿名网站访问,因为 IIS 使用自己的帐户(而不是登录用户)来指定访问权限。
答案2
答案3
我发现这种情况发生是因为任何用户(除访客之外)自动成为经过身份验证的用户的成员,而经过身份验证的用户又是用户的成员。
这意味着默认情况下,任何创建的用户都是用户的成员(即使您没有添加他们),因此,即使我创建了一个看起来完全锁定并且仅属于一个组(仅对一个目录具有权限)的用户,它仍然对 Windows 目录和其他关键路径具有完整列表权限。
我不确定大型主机如何处理这个问题,甚至控制面板(如 plesk)如何自动执行这个问题,但我最好的猜测是转到每个驱动器的根目录并拒绝所有内容,然后手动允许主文件夹 - 它看起来很混乱,但我不知道还有其他方法可以将组从经过身份验证的用户组中排除。
无论如何,感谢您对他人的帮助。