我有一個運行在嵌入式Linux上的C編寫的程序,有時候它想檢查一個系統用戶的密碼。如何使用C或shell在Linux中檢查密碼?
- 如果我能得到的/etc/passwd文件地穴鹽,我可以使用的crypt()來檢查用戶密碼的修正。
- 有shell的任何腳本可以幫助我檢查密碼嗎?如check_passwd用戶名密碼,那麼它返回的值是正確的還是不正確的? 謝謝!
我有一個運行在嵌入式Linux上的C編寫的程序,有時候它想檢查一個系統用戶的密碼。如何使用C或shell在Linux中檢查密碼?
如上所述,正確的處理方法是使用可插入的驗證模塊。您必須將libpam添加到您使用的任何嵌入式Linux中,但這通常很簡單(例如,buildroot提供了一個linux-pam軟件包)。
請參閱Given a linux username and a password how can I test if it is a valid account?瞭解如何檢查用戶給出的密碼是否對該用戶有效。
查看'login'程序的源代碼。 – hek2mgl
另請參見[pam - 可插拔認證模塊](http://www.linux-pam.org/) – hek2mgl
謝謝您的回答!我發現busybox的_libbb/correct_password.c_中的代碼對解決方案有很大的幫助。還是謝謝〜 –