好吧,不确定该怎么表述但是:
NTFS 权限本身是在哪里创建的?例如,我可以设置“完全控制”或“读取”,但这些权限是在哪里编程的?
我问的原因是:
我注意到,当我在其他程序(例如 Active Directory)中并单击该项目上的“安全选项卡”时,它允许我为该项目本身(例如用户或 OU)设置 NTFS 权限。
但是那里有不同的选项!它们具有完全控制和读写权限,以及许多与常规文件相同的权限,但它们也有很多其他权限(看我的两张图片,明白我的意思)。
所以这让我感到疑惑,这些可选择的权限是在哪里创建和存储的?
另外,我可以创建自己的对象来在其中创建自定义 NTFS 权限吗?
我有预感这是在 Windows 级别编程的,只有微软自己才能改变这些事情,但我真的想更深入地了解这些列表的来源。
谢谢你!
以下是域对象上可用的 NTFS 选项: PS 我也是一名计算机程序员,差点在 SO 上问了这个问题,因为我也对这方面的代码感兴趣,但它似乎更适合 SF。
答案1
在基于 Windows NT 的操作系统上,许多类型的对象都应用了安全描述符。以下是一份不完整的列表:
files, devices, mailslots, pipes, jobs, processes, threads, events,
access tokens, volumes, window stations, desktops, network shares,
services, registry keys, printers, Active Directory objects.
每个对象都Security descriptor
描述了根据用户的权限谁可以对该对象做什么。
如何以及在何处存储这些内容取决于对象的类型。对于文件安全描述符采用自由访问控制列表 (DACL) 的形式,并与文件内容一起存储在 NTFS 属性中。
对于 Active Directory 对象,安全信息与对象一起存储在 AD 数据库中。虽然您可以更改 AD 架构,但我认为您无法更改各种对象的可用权限。这些权限内置于操作系统本身。
权限从何而来?在 NTFS 中,如果您创建新文件,它通常会继承其父容器的权限。
否则,创建对象的程序可以在创建时设置权限,而设置哪些权限则由程序员决定。