Security

如果我沒有目標目錄的權限,如何將文件複製為 Jenkins“建構後”操作

  • May 8, 2014

我有以下使用者“架構”:

  1. 根訪問被禁用。
  2. admin 使用者只能訪問其主目錄。
  3. Apache 作為根服務執行(根是唯一可以訪問 Web 伺服器文件的服務)
  4. 我已經安裝了 jenkins CI,它正在以“管理員”權限建構我的項目。

我想將最新的建構文件複製到我的網路伺服器位置作為建構後操作。如果只有“root”使用者可以訪問我的目標目錄,我怎麼能做到這一點?也許我的“使用者架構”一開始就錯了?

也許我的“使用者架構”一開始就錯了?

是的。討厭打破它給你,但就是這樣。以下是你應該如何改變它:

  1. 以自己的使用者身份執行 Apache,最好在 chroot 中執行。這被稱為最小特權原則 - 其想法是限制在某些事情受到損害時可能造成的損害。假設某些事情受到損害,然後從那裡開始工作。沒有理由您應該以特權使用者身份執行 Apache。
  2. 以自己的使用者身份執行 Jenkins CI。同樣的原則也適用。
  3. 為文件提供一些方法來訪問 webserver 目錄。例如,您可以將 Jenkins 使用者添加到 Apache 組。這應該讓 Jenkins 建構伺服器訪問 webserver 目錄。更安全的方法是以 Apache 使用者身份執行 cron 作業或 systemd 計時器,並使用它來複製文件。為什麼這樣更安全?如果 Jenkins 被入侵,攻擊者將無法訪問您的網路伺服器目錄。

引用自:https://unix.stackexchange.com/questions/128324