簡體   English   中英

在不以 root 身份運行的情況下對本地用戶進行身份驗證

[英]Authenticate local user without running as root

我編寫的服務器應用程序目前以 root 身份運行,並使用 getspnam() 和 crypt() 對本地系統用戶進行身份驗證,這需要 root 權限才能訪問影子文件。 現在我希望該應用程序不在生產系統中以 root 身份運行。 不需要 root 來驗證本地用戶的替代方法是什么? 該應用程序目前在 debian 下運行,但通常編寫為可移植的。

您讀取的這些文件都不應該被用戶空間應用程序讀取。 它們是系統文件。 管理員可以自由地將文件保留在原處,但禁止其內容 - 這是一個完全有效的場景 - 並且很可能存在超出這些文件中內容的用戶信息。 比如說,如果機器加入了一個 Active Directory 域,或者使用 LDAP 進行身份驗證:用戶列表將來自該目錄, passwd只包含本地系統帳戶而沒有其他任何內容。 系統服務需要/etc這些文件,這就是 - 特別是提供本地帳戶的 PAM 模塊:)

因此:使用可插拔身份驗證模塊 (PAM)。 您將使用PAM公共接口 因為 PAM 是跨平台的,所以它可以在其他 unices 上工作, 比如 Solaris

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM