放弃root权限?

3

我有一个程序,在启动时以root身份运行一堆任务。之后它需要切换到不同的用户。如何做到这一点?

还想知道,是否可以在不重新启动程序的情况下重新获取root权限?


2
请参见 https://dev59.com/TXA75IYBdhLWcg3wUHWQ(其中的答案大多数是与语言无关的)。 - Gilles 'SO- stop being evil'
1个回答

3

简单来说,使用 setuid() 函数即可。

在切换到非 root 用户后,无法重新获取 root 权限。


1
“在切换到非root用户后,无法重新获取root权限。” 实际上,这正是放弃超级用户权限的全部意义所在。您希望限制程序中任何安全漏洞的影响。如果您可以重新升级权限,那么任何针对您的程序的攻击都可以这样做... - sleske
@sleske:实际上,如果您的有效UID不是root,并且实现支持_POSIX_SAVED_IDS,则可以恢复原始的有效UID。 - ninjalj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接