我需要从我的程序中管理Linux用户帐户,所以我实际上需要某种root访问权限,但是为该程序提供root权限可能不是最佳解决方案。
如何以保存的方式管理它。至少我不知道多进程架构。
对于整个“通用的东西”,我使用Qt。只有特定于操作系统的东西是我自己的。
答案 0 :(得分:1)
实现权限分离的“经典”解决方案如下:
结果将是您的主进程没有特殊权限,但您有一个root权限的子进程,它通过这些套接字连接到您的主进程。这些套接字是“未命名的”,这意味着没有其他程序可以访问它们。
当然,你仍然有点容易受到攻击。即使您的代码在到达fork()之前是“安全的”,攻击者仍然可以在以后进入您的主程序,并将命令发送到特权进程。即使子进程擅长验证其输入并且不能被破坏,有效命令仍然会在攻击者发出时引起问题 - 例如在您的情况下,攻击者可能会创建新帐户,甚至可能创建一个具有uid的帐户0