2011-01-25 98 views
0

我在寫一個主控腳本來控制我們的基礎設施。安全是一個主要關注的問題,所以我想解決兩個問題:python腳本中的身份驗證

我想讓用戶能夠執行應用程序,然後使用系統上的根憑據提示'登錄'程序(Linux - Ubuntu的)。未通過身份驗證會觸發電子郵件事件並鎖定程序。我可以使用/ etc/passwd進行身份驗證嗎?我該如何鎖定應用程序?

二,如何保護應用程序不被修改?我可能必須將某些屬性硬編碼到應用程序中。腳本被執行但未被編輯的理想權限是什麼?

+2

也許你應該讓腳本只能由超級用戶執行?然後要求用戶使用sudo/su來執行腳本。 – GWW 2011-01-25 02:18:25

+1

至於你的第二個問題,python並不是真正適合混淆的人選。您只能發佈編譯後的`.pyc`文件,這些文件稍微難以改變。 – miku 2011-01-25 02:20:48

回答

2

雖然這是一個非平凡的解決方案,但最安全的方法是採用客戶端/服務器方法,使您的主控腳本成爲系統服務,只有root可讀和可運行。您可以通過init.d啓動基礎架構啓動服務。

服務啓動時,您需要打開套接字或RPC服務器來處理您的控制命令。在Python上,這可以使用Twisted輕鬆完成。

要通過/etc/passwd進行身份驗證,您可以使用cryptpwd Python模塊。