新的網路伺服器:我應該創建所有使用者帳戶和提供的權限
這是我的問題here的後續行動。
我正在設置第一個網路伺服器,並且正在摸索要創建的使用者帳戶和權限以提供更好的安全性。下面是我所擁有的。
對於 2 個開發人員,我有 2 個帳戶(它們被添加到補充組中
devs
),並且只有他們被允許 ssh 到伺服器。對於 Web 應用程序(基於 Django),我創建了 1 個普通使用者,app
(尚未將其配置為--system
user 並且屬於 groupapp
)具有 shell 訪問權限。2 個開發人員在 ssh 到伺服器後,將 su 到app
任何更新和啟動/停止應用程序。app
不允許使用者執行su
(通過未添加到/etc/pam.d/su
使用中的組設置阻止pam_wheel.so
)。我還有第三個帳戶,無法su
執行與備份相關的任務,其中 cron 作業將 ssh 並獲取日誌文件、狀態等。讓我知道是否需要改進安全方面。(PS:我是新手)
su
需要共享密碼。我更喜歡sudo。因此,開發人員要麼sudo -u app command
執行command
以作為.run 執行app
,要麼執行sudo -u app -i
以作為app
. 可能sudo -u app -i /bin/bash
如果您將app
‘shell 設置為 /bin/false 或 /bin/true 之類的東西。如果他們不需要完整的 shell 作為應用程序,而只需要重新啟動應用程序,您可以限制他們可以作為應用程序執行的命令。在他們需要訪問的目錄上使用預設 ACL,授予開發人員和應用程序的訪問權限,這樣您就不會遇到文件系統權限問題。恕我直言,您需要遵循最小特權原則。如果他們不需要這樣做,不要給他們訪問權限。
通常我更喜歡只為 ssh 使用密鑰。如果可以,請禁用開發人員的密碼,並將 sudo 規則設置為不需要密碼。那麼任何人都不需要密碼,因此不需要密碼來披露/失去/重置。
今天晚上的閱讀作業,因為這篇文章有點多:“文件系統 ACL 是如何工作的”和“我如何配置 sudo”。也許之後是管理 ssh 密鑰。