GUI vs. CLI 的系統管理抉擇

蔡長欣 Chris

  • 精誠資訊 恆逸教育訓練中心 資深講師
  • 技術分類:網路管理與通訊應用

Red Hat自 2002 年推出RHEL2迄今,也超過十五個年頭了。在這期間Red Hat也試圖將傳統UNIX-like的指令(Command Line Interface)管理行為,因應冗長的設定步驟與需求,可透過簡單的圖型工具(Graphic User Interface),化繁為簡的將許多設定檔需要設定,一步到位。基於上述的目標,像是:集中驗證指向LDAP或Kerberos、防火牆的設定需求、SELinux的Mode和File-context與Boolean值組態等、NetworkManager的GUI網路相關的設定等。

下列圖檔,是在RHEL5到RHEL7近五年來防火牆GUI工具的快照,可以在圖檔中看到:功能從RHEL5的system-config-securitylevel,到RHEL6的system-config-firewall,已有明顯的支援度提升;一直到RHEL7的firewall-config,更可見功能有著明顯的改善,功能完整度提升的痕跡。

上下圖是RHEL5的system-config-securitylevel,就該介面的Firewall Options而言,是陽春版的防火牆部署介面(SELinux的功能也僅止於Mode的選擇而已)。

下圖RHEL6的system-config-firewall,在功能上很明顯做了改善,可選擇的項目相對就多了一些。

而RHEL7的firewall-config,幾乎可說是最好的選擇,該GUI工具讓企業客戶有不需要記憶firewall-cmd的任何參數,就可以讓設定在該介面上順利完成。

最後,我們來看一下,RHEL7的firewall-config與system-config-selinux的工具,Red Hat 底層是用哪個程式來實作的?請參閱下圖,使用file指令,可有效讀出該兩個工具的檔頭資訊:是Python script和POSIX shell script,但如果再仔細比對 system-config-selinux 的內容,它是執行另一個Python的程式,圖後方反白處即證明(/usr/share/system-config-selinux/system-config-selinux.py)。

有趣的是,為何近幾年,Red Hat 的工具開發重心,已從POSIX shell script慢慢的改成Python,除了方便跨平台與能夠搭配Web運行的重要特性外,另外新語言的語法彈性,可達成與傳統 shell script迥然不同的效果,也是Python受青睞的重點之一;而重要的改變,也讓Red Hat 的企業客戶,從早期的沒什麼選擇,變成能自由選擇。

相關學習資源