舊版原始碼控制:xinetd 下的 CVS
我們有一個使用遺留原始碼控制的團隊:cvs。我們在 xinetd 下運行 cvs pserver(設定檔如下)。
審計標誌
安全審核提出了一個標誌:「確保 cvs 伺服器不在 root 下運作」。
問題:
我可以透過將“user=root”替換為“user=cvs”來安全地鎖定“cvs pserver”嗎?有任何有害的副作用或“陷阱”嗎?
注意:使用者「cvs」擁有「cvs root」目錄「/var/cvs/cvs」中的所有文件
我問這個問題是因為我搜尋了所有十年前的文檔,所有範例都有“user=root”,沒有人建議更改“user=”參數以提高安全性。
更新: 我嘗試過這個。有效。沒問題。
謝謝
範例:cvspserver 設定文件
# Begin /etc/xinetd.d/cvspserver
service cvspserver
{
port = 2401
socket_type = stream
protocol = tcp
wait = no
user = root
passenv = PATH
server = /usr/bin/cvs
server_args = -f --allow-root=/var/cvs/cvs pserver
}
# End /etc/xinetd.d/cvspserver
答案1
你絕對應該聽從他們的建議。這是非常好的建議。
通常,執行此操作時,您需要確保守護程序有足夠的權限來執行其操作。在這種特定情況下,這很可能僅意味著它已經擁有的所有權。我的建議是備份您的儲存庫,然後繼續進行更改。
其工作方式是 xinetd(通常以 root 身份運行)將放棄特權,然後使用指向 xinetd 管理的套接字的 stdin 和 stdout 執行 /usr/bin/cvs。確實沒有什麼好說的。 CVS 非常簡單,除了能夠操作其根目錄下的檔案之外,不需要任何權限。