问题标签 [privileges]

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 投票
10 回答
61455 浏览

python - 检查脚本用户是否具有类似 root 权限的最佳方法是什么?

我有一个 Python 脚本,它将执行许多需要 root 级别权限的操作,例如在 /etc 中移动文件、使用 apt-get 进行安装等等。我目前有:

这是进行检查的最佳方法吗?还有其他最佳做法吗?

0 投票
1 回答
174 浏览

iis - System.DirectoryServices 所需的用户权限

我正在使用 System.DirectoryServices 列出服务器上运行的网站的状态。目前我正在使用模拟管理员帐户来运行它,但我希望拥有一个具有最低权限的特定用户帐户。

谁能指出我正确的方向?

0 投票
1 回答
22735 浏览

c++ - Windows Vista/Windows 7 权限:SeDebugPrivilege & OpenProcess

我能够找到的关于升级到满足我需要的适当权限的所有内容都与我当前的方法一致,但问题仍然存在。我希望也许有人有一些 Windows Vista/Windows 7 内部经验,可能会在只有黑暗的地方发光。我相信这会很长,但请耐心等待。

语境

我正在开发一个需要访问当前机器上其他进程的内存的应用程序。这显然需要管理员权限。它还需要SeDebugPrivilege(不,这不是 的拼写错误SetDebugPrivilege),我相信自己正确地获得了它,尽管我质疑是否不需要更多特权,从而导致我的问题。到目前为止,代码已在所有版本的 Windows XP 以及我的测试 Vista 32 位和 Windows 7 64 位环境中成功运行。

过程

  • 程序将始终以管理员权限运行。在这篇文章中可以假设这一点。
  • 升级当前流程Access Token以包含SeDebugPrivilege权利。
  • 用于EnumProcesses创建系统上当前 PID 的列表
  • OpenProcess使用PROCESS_ALL_ACCESS访问权限打开句柄
  • 用于ReadProcessMemory读取其他进程的内存。

问题:

在开发和我的个人测试期间一切正常(包括 Windows XP 32 和 64、Windows Vista 32 和 Windows 7 x64)。但是,在同事的 Windows Vista(32 位)和 Windows 7(64 位)计算机上进行测试部署期间,似乎存在特权/权限问题,OpenProcess并因一般Access Denied错误而失败。这在以受限用户身份运行(如预期的那样)和以管理员身份显式运行时(右键单击 →以管理员身份运行以及从管理员级别命令提示符运行时)都会发生。

但是,在我的测试环境中,这个问题对于我自己来说是无法重现的。我亲眼目睹了这个问题,所以我相信问题存在。我可以辨别实际环境和我的测试环境之间的唯一区别是,在 UAC 提示符下使用域管理员帐户时会发生实际错误,而我的测试(没有错误)使用本地管理员帐户UAC 提示。

看来,尽管使用的凭据允许 UAC“以管理员身份运行”,但该进程仍未获得能够OpenProcess在另一个进程上运行的正确权限。我对 Vista/Windows 7 的内部结构不够熟悉,不知道这可能是什么,我希望有人知道可能是什么原因。

踢球者

报告这个错误的人,并且他的环境可以定期重现这个错误,有一个小应用程序,它的名字RunWithDebugEnabled是一个小引导程序,它似乎提升自己的权限,然后启动传递给它的可执行文件(因此继承升级的权限)。当使用该程序运行时,在 UAC 提示符下使用相同的域管理员凭据,该程序可以正常工作,并且能够成功调用OpenProcess并按预期运行。

所以这肯定是获取正确权限的问题,众所周知,域管理员帐户一个管理员帐户,应该能够访问正确的权限。(显然获得这个源代码会很棒,但如果可能的话,我不会在这里)。

笔记

如前所述,失败OpenProcess尝试报告的错误是Access Denied. 根据 MSDN 文档OpenProcess

如果调用者启用了 SeDebugPrivilege 权限,则无论安全描述符的内容如何,​​都会授予所请求的访问权限。

这使我相信,在这些条件下,可能存在问题(1)获取SeDebugPrivileges或(2)需要任何 MSDN 文档中未提及的其他权限,并且域管理员帐户和本地管理员之间可能有所不同帐户

示例代码:




谢谢!

如果有人对在上述条件下在 Windows Vista 和 Windows 7 上正确打开另一个进程(假设可执行文件已正确“以管理员身份运行”ed)可能缺少哪些可能的权限、特权、权利等有所了解,将不胜感激。

如果我不是完全被难住了,我就不会在这里,但我希望该小组的经验和知识再次闪耀。我感谢您花时间阅读这堵文字墙。感谢您成为使 Stack Overflow 对所有人如此有用的人!

0 投票
4 回答
12058 浏览

python - Python - 检查用户是否具有管理员权限

我正在编写一个小程序作为 Python 3.x 中的自学项目。我的想法是让程序允许用户输入两个文本字段,然后将用户的输入插入到两个特定注册表项的值中。

有没有一种简单的方法可以检查当前用户是否可以访问注册表?我宁愿它清楚地告诉用户他/她需要管理员权限,而不是让程序发疯和崩溃,因为它试图访问受限区域。

我希望它在程序启动后立即进行此检查,然后再为用户提供任何输入选项。这需要什么代码?

编辑:如果不是很明显,这是针对 Windows 平台的。

0 投票
1 回答
578 浏览

php - 用于管理用户之间的文件和权限的 PHP CMS

我正在寻找一个 PHP CMS,它可以让我:

1-通过允许查看、打印或下载来上传和管理用户之间的文件(pdf、words..)。

2-知道谁在什么时候访问了什么,谁在什么时候下载了什么......谁在什么时候做什么。

0 投票
1 回答
9097 浏览

c++ - 从管理员帐户模拟 SYSTEM(或等效)

这个问题是关于我目前正在处理的特权问题的这个问题的后续和延续。



问题摘要:
我在没有Debug programs (SeDebugPrivilege)权限的域管理员帐户下运行程序,但我需要在本地计算机上使用它。


Klugey 解决方案:
程序可以将自己作为服务安装在本地机器上,并启动该服务。所述服务现在在该SYSTEM帐户下运行,这使我们能够使用我们的SeTCBPrivilege权限创建一个新的访问令牌,该令牌确实具有SeDebugPrivilege. 然后,我们可以使用新创建的令牌重新启动具有提升权限的初始程序。


我个人不喜欢这个解决方案。我觉得应该可以作为管理员获得必要的权限,而无需进行系统修改,例如安装服务(即使它只是临时的)。

我希望有一种解决方案可以最大限度地减少系统修改,并且最好可以即时完成(即:不需要重新启动自身)。我尝试在LogonUser已知的 SYSTEM 进程(例如 csrss.exe)上尝试SYSTEM并尝试失败,但失败了,因为如果没有我试图获取的权限,您无法获得该进程的句柄)。OpenProcessTokenOpenProcessPROCESS_QUERY_INFORMATION

我只是在我的智慧结束试图想出一个替代解决方案来解决这个问题。我希望有一种简单的方法可以在主机上获取特权令牌并为该程序模拟它,但我还没有找到方法。



如果有人知道解决此问题的方法,或者甚至对可能有效 的事情提出建议,请告诉我。我非常感谢您的帮助,谢谢!

0 投票
2 回答
1290 浏览

security - 通过我的网络应用程序使用 sudo 运行 shell 脚本

我的 Web 应用程序中有一些与服务器操作系统交互的功能。我编写了一个 bash 脚本,并且能够在我的应用程序中运行它。

但是,脚本的某些功能需要超级用户权限。

安全运行此脚本的最明智的方法是什么?它从 Web 表单中传递参数的,但应该只能由经过身份验证的用户调用,我相信这些用户不会对其进行 haxxor 处理。

0 投票
2 回答
9871 浏览

privileges - 如何在 psql 控制台下检查函数的权限

您能否告诉我如何使用 psql 控制台检查函数的权限,但又不会被源代码和描述淹没(例如使用 \df+ 时)。

0 投票
1 回答
978 浏览

windows - 如何在 Windows 中赋予进程特定权限

我正在编写一些测试软件,它接收一些源代码,在服务器上编译它,执行它,从数据库转发输入,捕获输出并将其与数据库中的一个进行比较,看看它是否正确。问题是源代码可以是任何东西(它是用 c/c++ 编写并用 Visual Studio cl 编译的),所以我需要以某种方式防止恶意用户。如果这些进程运行时间超过一段时间,或者使用的内存超出允许范围,我会自动终止这些进程。

问题是,我是否只能允许这些进程仅从标准输入/输出流写入和读取,并拒绝 Windows 上的任何其他访问权限。

请原谅我的英语。

先感谢您。

0 投票
1 回答
384 浏览

c++ - 如何检查 Windows 用户是否可以安装应用程序?还是域的 Windows 计算机成员?

我正在我们公司内部使用的应用程序中重新实现自动更新机制。旧系统使用基于 .exe 的安装程序,我不得不将其替换为可以在 Windows 域中工作的基于 .msi 的安装程序。我已经完成了这项工作并且效果很好。

我们总部的大部分用户都是windows域的成员,但也有很多不在域中的远程用户。对于域中的用户,我们会自动分发更新。远程用户应该使用应用程序内置的自动更新机制。

所以,问题是: 如何检查 Windows 用户是否可以在他的机器上安装应用程序?如何检查运行 Windows 的计算机是否是域的成员?

(我使用 Borland C++ 6 进行开发)