删除root权限

<p>我有被root启动(所以它可以绑定到低端口)的守护程序。初始化之后我非常想拥有它放弃root特权出于安全原因。 P&gt; </p><p>任何人都可以点我在的<em>的已知的正确 em&gt;的用C代码块,这将做到这一点? P&gt; <p>我读过的手册页,我看在不同的应用中这种不同的实现,和他们都不同,其中有些是非常复杂的。这是与安全相关的代码,我真的不想重塑同样的错误,其他人正在。我正在寻找的是一个最佳实践,已知良好的,可移植的库函数,我可以的,因为它会得到正确的认识使用。难道这样的事情存在? P&gt; </p><p>有关参考:我开始为根;我需要改变,以根据不同的UID和GID运行;我需要设置正确的补充群体;我不需要回之后更改为root权限。 P&gt;
</p></em></p>

78 浏览 1 回复
  gt   root   需要   权限   设置  

回复

    <p>您正在寻找的这篇文章: P&gt; </p><p> POS36-C。注意正确的撤销令而放弃特权 P&gt; </p><p>不知道如何以最佳方式把一些信息不存在重复的页面内容... P&gt; </p><p>为了删除所有权限(用户和组),则需要用户之前降组。鉴于 和 包含用户和要删除该组的ID,并假设有效ID也根,这是通过调用的<a href="完成“的setgid(): p&gt;</p><p>如果你是偏执狂,你可以尝试让你的root权限回来了,这应该失败。如果没有失败,你的救助: P&gt;</p><p>另外,如果你还是偏执狂,你可能要个seteuid()并的 setegid()的太多,但它不应该是必要的,因为的setuid()和setgid()如果处理已经设置的所有的ID属于root。 p&gt; </p><p>补充组列表是一个问题,因为没有POSIX函数来设置补充组(有 getgroups()&lt; /一&gt;,但没有setgroups())。有一个BSD和Linux扩展 setgroups(),您可以使用,那这涉及到你。 P&gt; </p><p>您还应该或以任何其他目录,使得该方法不保持在根资目录 P&gt; </p><p>由于您的问题是关于Unix整体而言,这是非常普遍的做法。请注意,在Linux中,这已不再是首选的方法。在当前的Linux版本,你应该设置 上的可执行文件的能力,并运行它作为一个普通用户。不需要root访问权限。 P&gt;
    </p>

    王冷

相关提问


友情链接: