在生產伺服器上安裝 zsh 很常見嗎?

在生產伺服器上安裝 zsh 很常見嗎?

問題可能不明確且過於寬泛,但任何答案,無論簡短或寬泛,我們都非常感激。

前段時間我要求在我們的生產伺服器上安裝 zsh。我的管理員公司回覆說無法完成,因為這是生產伺服器,而不是開發伺服器。

我使用 zsh 和 oh-my-zsh 已經有 5 年了,並且非常喜歡它,zsh 讓我的工作變得更輕鬆、更快。但這還不夠充分。

我對安全或這裡可能涉及的其他問題並不擅長,這就是為什麼我的問題是:

  1. 在生產伺服器上安裝zsh對系統無害嗎?
  2. 在這種情況下您允許安裝 zsh 嗎?
  3. 在生產伺服器上使用 bash 限制使用者是否有意義?

答案1

zsh只是一個 shell,它不會啟動任何服務,也不附帶任何 setuid 指令。因此,在某人或某事實際使用該軟體包之前,僅安裝該軟體包不會執行任何操作。由於它不需要任何權限,因此任何使用者都可以自行將其安裝在他們的主目錄或他們有權訪問的任何位置。

如果不是的話生產品質,有人可能會說,將其作為 和 admin 用戶的登入 shell 會帶來一些風險,但由於其語法比其他 shell(如bash或 )更明智tcsh,我認為它會大大改善問題。

雖然它的主要用途是作為互動式 shell,但我認為編寫腳本zsh可能會比腳本更安全、更可靠bash(看看有多少人在忘記引用變數時不知不覺地用語法編寫 bash腳本zsh,以及如何更改 shebang從#! /bin/bash#! /bin/zsh -將修復其腳本中的許多錯誤)。

無論如何,安裝zsh是我在我工作過的所有地方的所有伺服器部署中首先要做的事情之一。

但是,我通常不會將其設定為預設情況下任何使用者的登入 shell,因為某些軟體期望以 bash 為中心的環境並不罕見。

答案2

和其他人一樣,這是我的觀點:

  1. 在生產伺服器上安裝zsh對系統無害嗎?

定義“無害”。嚴格來說,它不會造成直接傷害。但是,生產系統上的任何代碼都是潛在的攻擊媒介。從這個意義上說,它並不是真正的“無害”,因為它可以用於對系統進行攻擊。還有一些其他方式可能會間接導致問題。例如,ZSH 比 bash 更需要資源,這對於接近容量運作的系統可能很重要。

  1. 在這種情況下您允許安裝 zsh 嗎?

根據具體情況,我可能已經安裝了它。

我的所有個人系統都安裝了 ZSH,並將其設定為每個人(包括 root)的預設 shell。這只是因為我經常在這些系統上使用本地 shell 進行工作,並且在許多情況下我都積極使用 ZSH。

但是,我在工作中管理的所有系統都沒有安裝它。我為他們所做的大約 95% 的管理工作並不涉及我實際接觸這些系統上的 shell(我做了一個很多工作中透過 Ansible),所以我沒有必要讓它成為一個熟悉的環境。除了我們的實際開發系統之外,我也不太可能將其安裝在任何其他系統上,而且我根本不可能將其安裝在任何可直接在場外存取的系統上。

  1. 在生產伺服器上使用 bash 限制使用者是否有意義?

除了某些不涉及實際 shell 存取的非常嚴格的情況之外,我質疑讓一般使用者接觸生產系統的實用性。

例如,在我工作的地方,只有 IT 部門和直接負責維護我們網站的人員才能對我們的 Web 伺服器進行常規 HTTPS 存取。 IT 人員(包括我自己)必須使用僅用於管理 Web 伺服器的特殊帳戶登錄,即使如此,他們對系統的存取也受到限制,除非他們坐在伺服器機房的實體控制台前。網頁設計者只能透過 SFTP 存取網站的根目錄,且沒有什麼別的。有鑑於此,除了 bash(這是我們內部管理使用的標準)之外,不需要任何 shell。

同樣,對於我們的內部文件伺服器,只有 IT 部門擁有實際的 shell 存取權。其他使用者對某些目錄的存取受到特別限制,通常允許常規檔案伺服器協定(SMB、NFS 等),加上SFTP,在某些情況下還允許rsync,但他們都沒有任何真正的shell 存取權限,因為他們實際上不需要它。

答案3

根據我的經驗,在生產伺服器上安裝 zsh 的情況並不常見。話雖這麼說,我主要與更「保守」的客戶(銀行、政府機構等)合作,因此您的情況可能會有所不同。

  1. Zsh 本身是無害。它只是“另一個 shell”,就像 bash、ksh...但是,在許多公司中,安全策略是盡可能限制攻擊面,即除非需要,否則不要安裝任何東西。儘管 zsh 無害,它的程式碼庫可能包含錯誤。閱讀砲彈休克如果您還不知道的話。 :)
    話雖如此,對於「商品」有一定的寬容度,例如使用 vim 而不僅僅是 vi。 Zsh 可能屬於這一類。

  2. 未投入生產, 沒有發生。除了減少攻擊面之外,您還需要測試兩次腳本 - 一次使用 zsh,一次使用 bash。這需要時間和金錢。

  3. 我不會稱之為 bash 限制:有什麼是 zsh 可以做而 bash 不能做的嗎?

最後說明:bash 幾乎是業界標準。它是大多數企業級發行版(RHEL、SUSE 等)以及許多非常流行的發行版(例如 Debian、Ubuntun)的預設 shell
。喜歡。然而,對於家庭使用來說,在工作中可能一直是 bash(在使用 AIX 等時則使用 ksh)。我最後也在家裡使用 bash,舊習慣很難改。

答案4

還有其他意見,但這是我的。

  1. 在生產伺服器上安裝zsh對系統無害嗎?

引進新軟體很少是無害的。例如,它需要確保與其相關的任何漏洞都被識別和修補。

  1. 在這種情況下您允許安裝 zsh 嗎?

不。

  1. 在生產伺服器上使用 bash 限制使用者是否有意義?

是的,bash太棒了:-) 如果公司中的一些小眾用戶zsh在沒有更廣泛的支援團隊了解的情況下開始編寫腳本,他們就會興奮不已。

相關內容