出于安全原因,我正在寻找一种删除进程权限的方法。我想以具有特权的用户身份开始,并以受限用户身份结束。
例如,我希望我的 Web 服务器在受限用户下运行,但我仍然想监听端口 80。
我怎样才能在Windows下做这样的事情。与 Unix 类似的东西:
bind_to_80();
chroot("/some/limited/dir");
setuid(limited_user_id);
setgid(limited_group_id);
chroot("/some/limited/dir");
// drop some more rights
fork(); // now I can't come back
我怎样才能在Windows下做类似的事情?
编辑:当然,我知道 Windows 没有 fork 或 chroot,但我正在寻求放弃各种权限,尤其是用户最佳实践。
看一眼马克·鲁西诺维奇简介 http://blogs.technet.com/b/markrussinovich/archive/2006/03/02/running-as-limited-user-the-easy-way.aspx在 Windows 下使用剥离权限CreateRestrictedToken http://msdn.microsoft.com/en-us/library/aa446583%28v=VS.85%29.aspx and CreateProcessAsUser http://msdn.microsoft.com/en-us/library/ms682429%28v=VS.85%29.aspx。正如他解释的那样,这并不是万无一失的,因为运行该进程的帐户仍然保留其特权。
当然还有他的PsExec http://technet.microsoft.com/en-gb/sysinternals/bb897553.aspxsysinternals 实用程序至少可以帮助您剥离Administrator
特权,无需编码。
对于现有流程来说,似乎AdjustToken http://msdn.microsoft.com/en-us/library/aa375202%28v=VS.85%29.aspx and AdjustTokenGroup http://msdn.microsoft.com/en-us/library/aa375199%28v=VS.85%29.aspx允许操作(前者显然需要 XPSP2 或更高版本),但本身需要特权...可能可以通过这种方式提交特权 seppuku,但我还没有尝试过:它们mightbarf 操纵当前进程的权限。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)