什麼節目只是詢問指定使用者的密碼(即使呼叫使用者是 root),如果成功則返回退出代碼 0,如果失敗則返回退出代碼 1?
是否有這樣一個簡單的程序(即不是帶有編輯配置的“sudo”)來完成任務?
另外,我正在尋找將登入使用者的程式(檢查其密碼,寫入 auth.log),但不執行任何程式(如login
),只需返回退出程式碼。
答案1
您需要一個名為pwauth
。它完全按照您的描述進行操作:接受使用者名稱和密碼,然後根據有效性返回退出代碼。它被設計為與 apache 的 mod_auth_external 一起使用來掛鉤系統身份驗證,但應該可以很好地滿足您的需求。
答案2
您試圖破壞使用者會話的目的,使用者在登入其帳戶時已經輸入了該密碼,因此再次詢問您的任務是不禮貌的;如果您確實希望程式基於登錄,那麼最好的方法是支援密鑰環,這允許用戶自行選擇是否為您的任務明確鍵入密碼。
不要強迫使用者correct horse battery staple
在剛輸入時再次輸入...
答案3
看起來最簡單的方法就是使用python-pam作為/usr/share/doc/python-pam/examples/pamtest.py
例子。此範例讀取密碼,使用 PAM 對使用者進行身份驗證,並根據結果寫入訊息。可以輕鬆更改為各種退出代碼。