Windows 中是否有相当于 Setuid 的工具?

Kii*_*Kii 6 windows

我想赋予程序执行它的用户的权限。Windows(最好是 Windows 7 或至少是 XP 之后的 Windows)上是否有相当于Setuid的工具?

如果我希望程序拥有比执行它的用户更多的权限怎么办?(例如,我希望程序写入程序文件,但我不希望用户能够这样做)。

Fra*_*mas 5

简而言之,您不需要执行任何操作即可使程序以生成该程序的用户的权限运行。这是 Windows 系统的标准。

为了强制程序以完全不同的用户身份执行(如 SetUID 那样),Microsoft 提供了Runas命令,您可以使用该命令在不同的用户凭据下调用可执行文件。

此外,在 Windows 7 等启用 UAC 的系统上,您可以按住 Shift + 右键单击​​可执行文件,以在不同用户下运行该程序,并在需要时调用该用户的管理员权限。


请注意,下面的答案与有关 Sticky 的原始问题相关。

直接回答你的问题,是和否。人们可以模拟该功能,但应用程序完全不同。

我认为您可能会将 Sticky 位与其他特殊的 unix 权限 SetUID 和 SetGID 混淆,这两者都会影响应用程序相对于调用进程的用户的执行方式,但 Sticky 不会。

粘性将不允许除 root 或所有者用户之外的任何用户删除或重命名文件,即使该用户具有写入权限并因此可以编辑该文件。

在“高级权限”窗口中(从对象属性 -> 安全选项卡 -> 高级),您可以添加或编辑“用户”的权限CREATOR OWNER,并授予他们权限DeleteDelete subfolders and files。然后,对于 ACL 中的每个其他实体,撤销(但不拒绝)这些相同的权限。

在此输入图像描述

这将允许所有具有写入权限的用户创建/编辑任何文件,但只有文件所有者可以删除它。

请注意,这种方法也具有与 Sticky 相同的缺陷:任何具有编辑权限的用户都可以用 0B 覆盖文件,这在概念上类似于删除文件(许多人认为它一样好......)。

祝你好运。