在受限用户中启动具有更多用户权限的程序
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 代替管道,但我认为在这种情况下您不会从中获得太多优势。
【讨论】:
以上是关于在受限用户中启动具有更多用户权限的程序的主要内容,如果未能解决你的问题,请参考以下文章