问题标签 [dacl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
14295 浏览

windows - 什么原因导致“权限订购不正确”?

App_Data在调试涉及SQLite和IIS的一个特别麻烦的错误时,我们在访问属性时遇到了权限问题

App_Data上的权限排序不正确,可能会导致部分条目无效。

这里还有一个截图:

在此处输入图像描述

我的问题不是不正确的排序是什么,我认为您如何以编程方式修复非规范 ACL?已经很好地介绍了这个问题。

我想知道的是哪些类型的订购不正确?例如,如果我们Full Control输入 for Everyone,它应该在其他权限之前还是之后?是否有任何触发错误的错误排序示例?我们点击Reorder了,所以我们不再可以在我们的机器上重现错误。

0 投票
2 回答
1335 浏览

c# - 如何在 C# 中编辑 DACL?

有没有类似的SetFileSecurity功能

我需要从 Python 重新编写一些测试,我被困在这部分。pywin32在 Python 中,我可以使用(具有 C++ 实现的模块与 Windows API 一起使用)自由编辑 DACL 。我可以用win32security.

将所有者更改为Everyone? 好的。

删除继承的 ACE?简单的。

所有那些没有一些特殊权限的人。

但是如果我想在 C# 中做这样的事情。我发现的一种方法是使用纯 SDDL 更改安全描述符,但如果在没有特权的情况下调用System.Security.File.SetAccessControl()withFileSecurity则不起作用。此外,即使使用具有几乎所有权限的管理员令牌,如果我想以“错误”的方式更改某些内容(删除一些继承的 ACE),安全描述符也不适用。如果我尝试做一些“非常错误”的事情,比如将所有者设置为,则会引发异常。SetSecurityDescriptorSddlFormSeSecurityPrivilegeEveryone

使用管理员令牌运行:

0 投票
0 回答
50 浏览

windows - Windows 权限代码:获取 ACE 时令人困惑的答案

在实现一段代码以获取所有者和组的 ACE 时,我将此代码用作灵感。

为了测试这段代码,我在文件夹中创建了一个文件。

在提升的命令提示符中,我以文件名作为输入运行应用程序(从上面的代码创建的 exe),并查看如下输出

我右键单击同一文件并在安全设置中,我拒绝同一用户对该文件的所有权限。

我再次在这个文件上运行应用程序,我仍然得到相同的输出

我错过了什么吗?我试图理解这段代码,但我无法找出任何明显的错误。

0 投票
0 回答
874 浏览

windows - Windows DACL 权限

我正在尝试使用 Windows 权限 API 修改权限。我有一个独立的用例代码,如下所示,我首先撤销所有访问权限,然后授予读写权限。

我得到此代码的输出如下

授予权限后,我可以访问文件“file.txt”,我可以打开它/写入它(例如 CreateFileW 通行证)

我不明白的是权限位背后的奥秘,0即使我已将权限授予FILE_GENERIC_READ | FILE_GENERIC_WRITE受托人CURRENT_USER,它也会显示出来。

我还使用检查了 DAC 列表icacls,它给了我以下输出

这告诉我,我的GRANT权限 ACE 被推到了权限之下DENY,这是一个有据可查的行为

这就是我将标志值设为 的原因0吗?

有什么方法/API/函数可以让我得到正确的标志,即可以告诉我FILE_GENERIC_READFILE_GENERIC_WRITE设置?

0 投票
1 回答
175 浏览

windows - 远程位置的文件访问检查

我正在使用类似于下面的代码来检查对文件夹/文件的访问。资源

此代码在客户机器(我们的应用程序运行的地方)上失败,并且对于不在 Windows 域中的本地用户以及具有基于 Samba 的网络共享的用户返回答案为 false。

我们的一位内部 Windows 专家评论说,也许在上述情况下,网络文件管理器返回的用户 SID 与 AccessCheck 函数中查询权限的 SID 不匹配。然后他提到,也许,为了实现这样的事情,我们必须正确地创建某种登录令牌,然后模拟它以获得正确的访问权限。

如何模拟域用户(或网络文件管理器允许的某些用户),以便网络文件管理器允许我的代码获取正确的访问信息?

任何帮助将不胜感激。

0 投票
0 回答
241 浏览

c# - 如何防止其他程序重命名其他顶级窗口标题

背景:我正在制作一个家长控制应用程序。

我的应用程序枚举屏幕上的所有顶级窗口,并通过窗口标题使用终止其他进程

SetWindowText(hwnd, WindowText, WindowText.Capacity)。

但是我的应用程序有一个巨大的安全漏洞。

用户可以使用 SetWindowText(IntPtr hwnd, String lpString) 重命名窗口标题。然后,我尝试以管理员身份运行 cmd.exe,SetWindowText 不起作用。

我想从根本上解决问题。

为了防止未经授权的程序重命名其他程序的窗口标题,如何在C#中授予所有顶级窗口或特定应用程序的写权限?

0 投票
1 回答
320 浏览

windows - 使命名管道仅对启动客户端进程的登录 sid 可访问

我有创建客户端进程并创建命名管道的服务器。客户端通过命名管道与服务器通信。

要防止远程用户或不同终端服务会话上的用户访问命名管道,请在管道的 DACL 上使用登录 SID。登录 SID 也用于 run-as 登录;它是用于保护每个会话对象名称空间的 SID。有关详细信息,请参阅在 C++ 中获取登录 SID。 https://docs.microsoft.com/en-us/windows/desktop/ipc/named-pipe-security-and-access-rights

我该怎么做呢?它告诉我如何获取 SID,但如何SECURITY_ATTRIBUTE使用 SID?

0 投票
1 回答
402 浏览

python - 尽管是文件的所有者,但 READ_CONTROL 的 CreateFileW 失败并显示“访问被拒绝”

在Windows 上,即使自主ACL (DACL) 为空,即没有人对文件具有权限,文件所有者也可以读写DACL(READ_CONTROLWRITE_DAC访问)。

所以我尝试执行以下操作:

  1. 在文件上设置一个空的 DACL
  2. 获取文件的句柄READ_CONTROL
  3. GetSecurityInfo使用和句柄​​获取安全描述符
  4. 检查 DACL 是否实际为空

但是,使用获取句柄CreateFileW失败并Access is denied出现错误。令人惊讶的是GetFileSecurity,相当于GetSecurityInfofor files 的 , 工作得很好。根据文档GetFileSecurity需要READ_CONTROL访问权限。

为什么CreateFileW在以下示例中失败?

输出:

0 投票
0 回答
303 浏览

c++ - 修改 DACL 以防止每个人在没有调试权限的情况下杀死进程

我有一些我写的代码。我需要在Windows 10中修改DACL(安全描述符)以防止在没有用户调试权限的情况下终止进程。我该怎么做?我在互联网上学习了算法,为此寻找了一些功能,但过程仍然没有任何问题地关闭。我尝试调试了很多时间,代码可以正常工作,但没有成功。

我应该如何解决这个问题?对于下面的示例,我为 Denied PROCESS_TERMINATE 添加 ACE。这是正确的方式吗?

还建议我如何检查。我知道我会收到拒绝权限的消息框,是吗?

我的代码(ps更新):

0 投票
1 回答
80 浏览

windows - 如何检查进程是否可以访问 Windows 中的安全对象

场景:我有一个可以创建、启动、停止其他服务的服务,并通过 IPC 将其提供给用户进程。

如果调用进程有权访问 SCM,我如何签入我的服务?

所以在更抽象的层面上,我有一些安全的对象,在这种情况下是 SCM,但它实际上可以是任何其他进程、线程、文件、文件夹或 reg 键等......而且我有一些用户进程可能或可能没有访问该资源的权限。如何在第 3 方进程中确定所述用户进程是否有权访问给定的安全对象?