2010-08-18 66 views
1

我需要一種更好的方法來阻止普通用戶執行我的python腳本。我正在做類似的事情:防止普通用戶執行

if __name__ == '__main__': 
    if os.getenv('USER') == 'root': 
     addUser = addUser() 
    else: 
     print 'Only root can run that!' 

它的工作,但它很醜! 我的腳本是關於Debian系統中的用戶管理。

+7

操作系統級保護有什麼問題?即,「chown' root和'chmod'確保只有root可以運行它?操作系統功能有什麼問題? – 2010-08-18 17:57:56

回答

12

可以查看和編輯Python代碼以規避您放入的任何保護,最好的辦法是限制用戶在debian中的可執行訪問權限,因此只有root可以執行/查看/編輯。

chmod

5

這是比較正常的,限制訪問的可執行文件需要工作,而不是在執行的層面執行權限的資源。例如,任何用戶通常都可以運行mount(8)命令,但實際掛載實際卷所需的設備文件僅限於某些用戶或組,並且mount命令會在嘗試製作之前檢查操作是否可行系統調用來執行設備操作。

這適用於普通文件。例如,許多Linux軟件包管理器需要安裝程序的數據庫。在安裝任何東西之前,軟件包管理器將檢查數據庫文件的權限以查看主叫用戶是否可以寫入,並檢查目標目錄以查看用戶是否可以修改這些目錄。即使包管理器沒有執行這些檢查,它們在嘗試時也不能進行這些更改,但內核只是阻止程序執行不允許擁有用戶執行的操作。