2016-09-18 24 views
1

我有一個應用程序通過套接字讀取用戶的名稱和密碼。我想確定提供的密碼是否與操作系統爲該用戶提供的密碼相匹配。如果是這樣,我想分叉一個進程作爲該用戶運行。理想情況下,代碼將在Go中,但如果需要,我可以執行C.理想情況下,它可以在Linux,OSX和BSD上運行。有沒有辦法找出提供的密碼是否與特定用戶的實際密碼匹配?

+2

試試這個庫也許:https://godoc.org/github.com/msteinert/pam –

+0

謝謝你,它看起來很有希望。我會試一試。 –

+0

@Not_a_Golfer我在我的Mac上嘗試了godoc.org/github.com/msteinert/pam,不起作用。我以root身份運行測試,並且都發生系統錯誤。 –

回答

2

您可以對Linux和OS X使用PAM身份驗證。 主要功能是pam_authenticate,但您需要先啓動pam服務並在完成時結束。

Here's an example其基本用法。

+0

我寫了一個使用PAM的cgo模塊。 BSD(Mac)和Linux之間有一些區別,但這並不是什麼大不了的。 https://github.com/murphybytes/ucp/tree/master/pam –

相關問題