Security
如果我沒有目標目錄的權限,如何將文件複製為 Jenkins“建構後”操作
我有以下使用者“架構”:
- 根訪問被禁用。
- admin 使用者只能訪問其主目錄。
- Apache 作為根服務執行(根是唯一可以訪問 Web 伺服器文件的服務)
- 我已經安裝了 jenkins CI,它正在以“管理員”權限建構我的項目。
我想將最新的建構文件複製到我的網路伺服器位置作為建構後操作。如果只有“root”使用者可以訪問我的目標目錄,我怎麼能做到這一點?也許我的“使用者架構”一開始就錯了?
也許我的“使用者架構”一開始就錯了?
是的。討厭打破它給你,但就是這樣。以下是你應該如何改變它:
- 以自己的使用者身份執行 Apache,最好在 chroot 中執行。這被稱為最小特權原則 - 其想法是限制在某些事情受到損害時可能造成的損害。假設某些事情會受到損害,然後從那裡開始工作。沒有理由您應該以特權使用者身份執行 Apache。
- 以自己的使用者身份執行 Jenkins CI。同樣的原則也適用。
- 為文件提供一些方法來訪問 webserver 目錄。例如,您可以將 Jenkins 使用者添加到 Apache 組。這應該讓 Jenkins 建構伺服器訪問 webserver 目錄。更安全的方法是以 Apache 使用者身份執行 cron 作業或 systemd 計時器,並使用它來複製文件。為什麼這樣更安全?如果 Jenkins 被入侵,攻擊者將無法訪問您的網路伺服器目錄。