问题标签 [privilege-elevation]

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 投票
1 回答
8446 浏览

c - 为什么在使用 system() 调用管理程序的 setuid-root C 程序中需要 setuid(0)?

我不得不为某人做一个肮脏的 Linux hack,以便他们可以cupsenable printername在作为非 root 用户时使用 shell 命令启动打印机。我不希望他们能够以cupsenableroot 身份使用整个语法,所以我只编写了一个 C 包装器来清理输入argv[1]并调用system("cupsenable sanitizedprintername").

我将程序 setuid 设为 root,但即便如此,cupsenable仍因“权限被拒绝”而失败。然后我在之前插入了一个setuid(0)电话system(),你瞧,它起作用了。

忽略有更好的方法让用户控制打印机的问题。可能有更好的方法。我感兴趣的是chmod u+svs. setuid(0)vs.的复杂性system()。为什么它会这样?

0 投票
2 回答
762 浏览

windows - UAC 和海拔提示模式

我已经阅读了几个关于 UAC 和特权提升的问题,但我没有找到一个令人满意/全面的答案。

我有这种情况:在 Windows 6 或更高版本上,当用户打开配置窗口时,我必须BCM_SETSHIELD在 OK 按钮上显示盾牌 ( ),当需要提升权限才能完成任务时。- 我知道在 Windows UI 中,即使 UAC 被禁用,盾牌总是可视化为“管理任务”,但客户有这个特定的要求。

我已经起草了这个条件以显示图标:

  1. 用户没有管理权限
  2. 目前的流程有TOKEN_ELEVATION_TYPE == TokenElevationTypeLimited

条件 #1 很简单:如果用户没有管理权限,则无论 UAC 是什么,都始终需要提升。#2 表示用户具有管理权限,任何其他值TOKEN_ELEVATION_TYPE表示不需要提升。

真的那么简单吗?我错过了什么?并且 - 有关于这个主题的记录或众所周知的模式吗?

0 投票
1 回答
780 浏览

linux - 如何从使用 sudo 运行的程序中访问用户的 ssh 密钥?

困境:我正在开发的 Linux 程序应该:

  1. 通过 git+ssh:// 协议(使用 Git)获取“包”。
  2. 在系统中安装那个“包”。

为了让 git+ssh 工作,Git 需要查看我的密钥。

对于“包”安装,程序必须具有超级用户权限。

一个限制:程序不应自行提升权限(调用 sudo)。用户必须使用 sudo 显式调用它。(让我们忽略用户在开始以 root 身份登录时运行程序的情况——假设他将正确设置密钥。)

所以,问题是:如何使用 sudo 调用的程序中的用户密钥进行 ssh 访问?

0 投票
2 回答
113 浏览

php - 在哪里/如何放置一个类来控制用户可以做什么(特权)?

我正在使用一个基于 $_POST['action'].. 执行正确查询的类。示例:

现在当然我想阻止用户做他不能做的事情..例如编辑别人的帖子,或者更复杂的事情,比如他只能在帖子尚未发布的情况下编辑他的帖子。一旦帖子发布,他就不能再编辑(或者可能是基于时间的东西)

您将如何在我的中添加此检查class data?我曾经听说过 Zend_ACL 是否适用于这种情况?

编辑:我会避免使用数据库来存储权限

Edit2:我想这样做:每个用户都有一个“级别”,级别 = 1 表示您是管理员,级别 = 2 表示您是编辑,级别 3 = 表示您是简单用户。

因此,在每个级别都对应一些特权。现在我应该把这些信息放在哪里?

0 投票
1 回答
56 浏览

security - 寻找一个好的沙盒框架

我正在开发一个需要对不受信任的代码进行沙箱处理的应用程序。提供不受信任的代码的形式并不重要,只要它具有相当的表现力即可。除了将字符串作为输入并返回另一个字符串之外,不需要或不应该允许外部通信。如果结果执行速度相当慢也没关系。我的首要任务是找到一种安全的方法来做到这一点。

NaCl 看起来很有前途,但还没有受到太多敌意的关注。各种 java 和 javascript 沙箱都受到了相当大的打击,但它们都存在最近的权限提升漏洞。

还有其他我应该考虑的沙盒框架吗?我希望有一个相当简单的安全设计框架(如 NaCl,但更成熟),您可以通过审核其代码来说服自己是安全的。我正在研究pypy sandbox,它声称可以做到这一点。但是,据我了解,到目前为止,它并没有受到太多关注。与 plash 等额外的操作系统虚拟化层相结合会在一定程度上降低风险,但这些都很复杂并且也可能存在漏洞

0 投票
1 回答
531 浏览

freepascal - 以编程方式触发 Ubuntu 上 Lazarus 应用程序下的权限对话框

我想减轻我父亲安装一些我正在为他开发的软件的任务。
为此,我正在使用 Lazarus,我想知道是否有 API 来提升权限升级对话框。

似乎很难在谷歌上找到一个单一的查询:
“lazarus 特权升级”没有帮助。
“拉撒路特权对话”也无济于事。

我确实意识到可以要求用户在 下运行它gksudo,但我想避免使用任何脚本或命令行。

所以我有点迷失在哪里转向。

0 投票
1 回答
748 浏览

django - Django 用户在创建/权限提升方面的权利

我遇到了以下问题:如果我给用户工作人员状态并允许他创建用户但不创建新组和分配权利,他仍然可以为另一个用户分配“管理员”权利 - 所以他可以轻松添加比自己拥有更多权利的用户!有没有人在不提供自定义用户模型/视图的情况下找到避免这种情况的方法?

我很感谢任何回应。

0 投票
1 回答
5990 浏览

c++ - CreateProecssAsUser 提升权限?

我的 CreateProcessAsUser 函数出现错误。它说“请求的操作需要提升。”我以为我已经给了它最高权限。有人帮忙吗?谢谢

我的代码如下:

0 投票
1 回答
3637 浏览

winapi - 从进程中删除管理员特权

在这篇很棒的MSDN 文章的帮助下,我的第一个想法是简单地检查进程是否使用提升的管理员组,并使用AdjustTokenGroups()我将管理员组设置为SE_GROUP_USE_FOR_DENY_ONLY. 不幸的是,我们无法修改当前运行进程的管理员组,因为它也具有SE_GROUP_MANDATORY属性,这使得它无法更改。

MSDN 文档对此有这样的说法:

AdjustTokenGroups函数不能禁用结构中具有该SE_GROUP_MANDATORY属性的组TOKEN_GROUPS。改为使用CreateRestrictedToken

所以,我完成了以下代码来实现这一点;

但是新进程仍然以管理员身份运行,而不是以普通用户身份运行。

我该如何做到这一点?

0 投票
1 回答
1117 浏览

installation - 强制 Inno Setup 在安装过程中显示 UAC 提示

如果在我的安装过程中需要提升权限来运行特定的安装程序,我如何强制 Inno Setup 显示 UAC 提示?跳过安装此安装程序并不重要。我发现我可以指定 AfterInstall 函数来测试是否需要提升权限(IsAdminLoggedOn()),但是如何显示 UAC 提示以以特定用户身份运行此安装程序?