1
我需要從我的程序管理Linux用戶帳戶,所以我實際上需要某種形式的root訪問權限,但根植於此程序不可能是最好的解決方案。
如何以保存的方式管理它。至少我不知道多進程架構。 對於整個「通用的東西」我使用Qt。只有操作系統特定的東西是我自己的。什麼是最好的處理用戶權限的應用程序,應該能夠管理Linux用戶帳戶
我需要從我的程序管理Linux用戶帳戶,所以我實際上需要某種形式的root訪問權限,但根植於此程序不可能是最好的解決方案。
如何以保存的方式管理它。至少我不知道多進程架構。 對於整個「通用的東西」我使用Qt。只有操作系統特定的東西是我自己的。什麼是最好的處理用戶權限的應用程序,應該能夠管理Linux用戶帳戶
「經典」的解決方案實現權限分離是這樣工作的:
的結果將是你的主要過程有沒有特殊權限發送的指令,但是你有一個根特權的子進程,它通過這些套接字連接到你的主進程。這些套接字是「未命名」的,這意味着沒有其他程序可以訪問它們。
當然,你仍然有點容易受到攻擊。即使你的代碼在你到達fork()之前是「安全的」,攻擊者以後仍然可以進入你的主程序,並向特權進程發送命令。即使子進程擅長驗證其輸入並且不能被破壞,當攻擊者發出有效命令時仍然可能導致問題 - 就像你的情況一樣,攻擊者可能會創建新帳戶,甚至可能會創建新帳戶0.
爲了避免安全問題,它不是一個更好的解決方案,用更少的權利而不是分叉來啓動進程(內存優勢並不那麼重要)嗎? – user1723056