[英]How to check login credentials in linux when not running as root?
我在C中編寫了一個cgi-bin應用程序,它在瀏覽器中運行,允許用戶打開交互式shell並在Linux機器上查看和編輯文件。 它作為標准的apache“www-data”用戶運行。 我剛剛添加了一個登錄屏幕,用戶輸入了他們的名稱和密碼(在表單中),但是我無法使用getspnam對用戶進行身份驗證,因為此功能僅在以root身份運行時才有效。
在不以root用戶身份運行時,我有哪些選項可以檢查用戶的登錄憑據?
PS:在我的交互式shell中,我可以輸入“su root”,然后鍵入我的密碼,它確實提升到root,所以顯然可以交互式完成。
我想你想看一下Pluggable認證模塊 。 AFAIK,PAM為你處理所有雜亂的東西,你只需要做一些函數調用來驗證用戶在Linux主機上驗證用戶的任何后端(無論是影子密碼,nis,ldap,等等)
這是一個關於將C代碼與它們集成的簡短指南 。
關於你的PS:嗯,當你做su root
你會切換到root用戶。 所以是的,當然,root可以讀取影子文件,你們都准備好了。
關於你的問題:你不能暫時將你的apache進程升級到root(通過調用setuid
或類似的)來執行身份驗證嗎?
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.