在受限用户中启动具有更多用户权限的程序

Posted

技术标签:

【中文标题】在受限用户中启动具有更多用户权限的程序【英文标题】:initiating a program that has more user privilages in restricted user 【发布时间】:2009-12-03 10:29:51 【问题描述】:

我的一个硬盘驱动器被授予有限访问权限的用户。这些用户无权删除该驱动器中的文件。但我有一个应用程序应该允许这些用户删除上述驱动器中的文件。

1) 我该怎么做?

2) 当一个低权限用户登录到我的应用程序时,我是否可以编写一个隐藏线程/程序来赋予高权限用户权限(仅适用于该应用程序),就像模拟另一个用户一样,这样他就可以通过此应用删除受限硬盘中的文件?

谢谢

【问题讨论】:

我不会推荐它,但是可以。哪种编程语言? 程序是C#,操作系统是Windows。你能建议我一些方法吗?谢谢 【参考方案1】:

根据您的操作系统,您可以执行各种操作。

在类似 UNIX 的环境中,您可以编写程序并使用 setuid 或 setguid,以便它以另一个(更多特权)用户的特权运行。

或者,在 Windows 或 UNIX 中,您可以作为更有特权的用户运行服务,并让它接受来自其他用户/进程的请求,以代表他们执行操作。您必须研究与服务通信的方式。

希望对您有所帮助。

【讨论】:

【参考方案2】:

可能最简单的方法是编写一个公开命名管道的服务,然后创建一个与管道对话并向您的服务发出指令的客户端应用程序。该服务在 LocalSystem 或指定的较高权限帐户下运行,并执行来自在较低权限用户帐户下运行的应用程序的指令。当你连接到管道时,你需要某种握手来建立真诚,但这并不难。您可以使用 WCF 代替管道,但我认为在这种情况下您不会从中获得太多优势。

【讨论】:

以上是关于在受限用户中启动具有更多用户权限的程序的主要内容,如果未能解决你的问题,请参考以下文章

如何以管理员权限启动应用程序

批处理文件:删除提升的权限(以原始用户身份运行命令)

电脑新建的默认受限账户有哪些权限?都可以做啥

如何快速删除具有现有权限的用户

linux 中 root用户登入mysql数据库权限受限

winXP里面新建一个用户组后怎么设置这个用户组的具体权限。