24 個必知必會的系統管理員面試問題
作為一個經常與計算機打交道的極客,在碩士畢業後在 IT 行業選擇我的職業是很自然的選擇。因此,我認為走上系統管理員之路是正確的路徑。在我的職業生涯中,我對求職面試過程非常熟悉。現在來看一下對該職位的預期、職業發展道路,以及一系列常見面試問題及我的回答。
系統管理員的典型任務和職責
組織需要了解系統工作原理的人員,以確保數據安全並保持服務平穩運行。你可能會問:「等等,是不是系統管理員還能做更多的事情?」
你是對的。現在,一般來說,讓我們看一下典型的系統管理員的日常任務。根據公司的需求和人員的技能水平,系統管理員的任務從管理台式機、筆記本電腦、網路和伺服器到設計組織的 IT 策略不等。有時,系統管理員甚至負責購買和訂購新的 IT 設備。
那些尋求系統管理工作以作為其職業發展道路的人可能會發現,由於 IT 領域的快速變化是不可避免的,因此難以保持其技能和知識的最新狀態。所有人都會想到的下一個自然而然的問題是 IT 專業人員如何掌握最新的更新和技能。
簡單的問題
這是你將遇到的一些最基本的問題,以及我的答案:
*1、你在 nix 伺服器上登錄後鍵入的前五個命令是什麼?**
lsblk
以查看所有的塊設備信息who
查看誰登錄到伺服器top
,以了解伺服器上正在運行的進程df -khT
以查看伺服器上可用的磁碟容量netstat
以查看哪些 TCP 網路連接處於活動狀態
2、如何使進程在後台運行,這樣做的好處是什麼?
你可以通過在命令末尾添加特殊字元
&
來使進程在後台運行。通常,執行時間太長並且不需要用戶交互的應用程序可以放到後台,以便我們可以在終端中繼續工作。(引文)
3、以 root 用戶身份運行這些命令是好事還是壞事?
由於兩個主要問題,以 root 身份運行(任何命令)是不好的。第一個是風險。當你以 root 身份登錄時,無法避免你由於粗心大意而犯錯。如果你嘗試以帶有潛在危害的方式更改系統,則需要使用
sudo
,它會引入一個暫停(在你輸入密碼時),以確保你不會犯錯。第二個原因是安全。如果你不知道管理員用戶的登錄信息,則系統更難被攻擊。擁有 root 的訪問許可權意味著你已經能夠進行管理員身份下的一半工作任務。
4、rm
和 rm -rf
有什麼區別?
rm
命令本身僅刪除指明的文件(而不刪除目錄)。使用-rf
標誌,你添加了兩個附加功能:-r
(或等價的-R
、--recursive
)標誌可以遞歸刪除目錄的內容,包括隱藏的文件和子目錄;而-f
(或--force
)標誌使rm
忽略不存在的文件,並且從不提示你進行確認。
5、有一個大小約為 15GB 的 Compress.tgz
文件。你如何列出其內容,以及如何僅提取出特定文件?
要列出文件的內容:
tar tf archive.tgz
要提取特定文件:
tar xf archive.tgz filename
有點難度的問題
這是你可能會遇到的一些較難的問題,以及我的答案:
6、什麼是 RAID?什麼是 RAID 0、RAID 1、RAID 5、RAID 6 和 RAID 10?
RAID( 廉價磁碟冗餘陣列 )是一種用於提高數據存儲性能和/或可靠性的技術。RAID 級別為:
- RAID 0:也稱為磁碟條帶化,這是一種分解文件並將數據分布在 RAID 組中所有磁碟驅動器上的技術。它沒有防止磁碟失敗的保障。(引文)
- RAID 1:一種流行的磁碟子系統,通過在兩個驅動器上寫入相同的數據來提高安全性。RAID 1 被稱為鏡像,它不會提高寫入性能,但讀取性能可能會提高到每個磁碟性能的總和。另外,如果一個驅動器發生故障,則會使用第二個驅動器,發生故障的驅動器需要手動更換。更換後,RAID 控制器會將可工作的驅動器的內容複製到新驅動器上。
- RAID 5:一種磁碟子系統,可通過計算奇偶校驗數據來提高安全性和提高速度。RAID 5 通過跨三個或更多驅動器交錯數據(條帶化)來實現此目的。在單個驅動器發生故障時,後續讀取可以從分散式奇偶校驗計算出,從而不會丟失任何數據。
- RAID 6:通過添加另一個奇偶校驗塊來擴展 RAID 5。此級別至少需要四個磁碟,並且可以在任何兩個並發磁碟故障的情況下繼續執行讀/寫操作。RAID 6 不會對讀取操作造成性能損失,但由於與奇偶校驗計算相關的開銷,因此確實會對寫入操作造成性能損失。
- RAID 10:RAID 10 也稱為 RAID 1 + 0,它結合了磁碟鏡像和磁碟條帶化功能來保護數據。它至少需要四個磁碟,並且跨鏡像對對數據進行條帶化。只要每個鏡像對中的一個磁碟起作用,就可以檢索數據。如果同一鏡像對中的兩個磁碟發生故障,則所有數據將丟失,因為帶區集中沒有奇偶校驗。(引文)
7、ping
命令使用哪個埠?
ping
命令使用 ICMP。具體來說,它使用 ICMP 回顯請求和應答包。ICMP 不使用 UDP 或 TCP 通信服務:相反,它使用原始的 IP 通信服務。這意味著,ICMP 消息直接承載在 IP 數據報數據欄位中。
8、路由器和網關之間有什麼區別?什麼是默認網關?
路由器描述的是一種通用技術功能(第 3 層轉發)或用於該目的的硬體設備,而網關描述的是本地網段的功能(提供到其他地方的連接性)。你還可以說「將路由器設置為網關」。另一個術語是「跳」,它描述了子網之間的轉發。
術語默認網關表示區域網上的路由器,它的責任是作為對區域網外部的計算機通信的第一個聯繫點。
9、解釋一下 Linux 的引導過程。
BIOS -> 主引導記錄(MBR) -> GRUB -> 內核 -> 初始化 -> 運行級
10、伺服器啟動時如何檢查錯誤消息?
內核消息始終存儲在 kmsg 緩衝區中,可通過
dmesg
命令查看。引導出現的問題和錯誤要求系統管理員結合某些特定命令來查看某些重要文件,這些文件不同版本的 Linux 處理方式不同:
/var/log/boot.log
是系統引導日誌,其中包含系統引導過程中展開的所有內容。/var/log/messages
存儲全局系統消息,包括系統引導期間記錄的消息。/var/log/dmesg
包含內核環形緩衝區信息。
11、符號鏈接和硬鏈接有什麼區別?
符號鏈接(軟鏈接)實際是到原始文件的鏈接,而硬鏈接是原始文件的鏡像副本。如果刪除原始文件,則該軟鏈接就沒有用了,因為它指向的文件不存在了。如果是硬鏈接,則完全相反。如果刪除原始文件,則硬鏈接仍然包含原始文件中的數據。(引文)
12、如何更改內核參數?你可能需要調整哪些內核選項?
要在類 Unix 系統中設置內核參數,請首先編輯文件
/etc/sysctl.conf
。進行更改後,保存文件並運行sysctl -p
命令。此命令使更改永久生效,而無需重新啟動計算機
13、解釋一下 /proc
文件系統。
/proc
文件系統是虛擬的,並提供有關內核、硬體和正在運行的進程的詳細信息。由於/proc
包含虛擬文件,因此稱為「虛擬文件系統」。這些虛擬文件具有獨特性。其中大多數顯示為零位元組。虛擬文件,例如
/proc/interrupts
、/proc/meminfo
、/proc/mounts
和/proc/partitions
,提供了系統硬體的最新信息。其他諸如/proc/filesystems
和/proc/sys
目錄提供系統配置信息和介面。
14、如何在沒有密碼的情況下以其他用戶身份運行腳本?
例如,如果你可以編輯 sudoers 文件(例如
/private/etc/sudoers
),則可以使用visudo
添加以下內容:
user1 ALL =(user2)NOPASSWD:/opt/scripts/bin/generate.sh
15、什麼是 UID 0 toor 帳戶?是被入侵了么?
toor
用戶是備用的超級用戶帳戶,其中toor
是root
反向拼寫。它預期與非標準 shell 一起使用,因此root
的默認 shell 不需要更改。此用途很重要。這些 shell 不是基本發行版的一部分,而是從 ports 或軟體包安裝的,它們安裝在
/usr/local/bin
中,默認情況下,位於其他文件系統上。如果 root 的 shell 位於/usr/local/bin
中,並且未掛載包含/usr/local/bin
的文件系統,則 root 無法登錄以解決問題,並且系統管理員必須重新啟動進入單用戶模式來輸入 shell 程序的路徑。
更難的問題
這是你可能會遇到的甚至更困難的問題:
16、tracert
如何工作,使用什麼協議?
命令
tracert
(或traceroute
,具體取決於操作系統)使你可以準確地看到在連接到最終目的地的連接鏈條中所觸及的路由器。如果你遇到無法連接或無法ping
通最終目的地的問題,則可以使用tracert
來幫助你確定連接鏈在何處停止。(引文)通過此信息,你可以聯繫正確的人;無論是你自己的防火牆、ISP、目的地的 ISP 還是中間的某個位置。
tracert
命令像ping
一樣使用 ICMP 協議,但也可以使用 TCP 三步握手的第一步來發送 SYN 請求以進行響應。
17、使用 chroot
的主要優點是什麼?我們何時以及為什麼使用它?在 chroot 環境中,mount /dev
、mount /proc
和 mount /sys
命令的作用是什麼?
chroot 環境的優點是文件系統與物理主機是隔離的,因為 chroot 在文件系統內部有一個單獨的文件系統。區別在於
chroot
使用新創建的根目錄(/
)作為其根目錄。chroot 監獄可讓你將進程及其子進程與系統其餘部分隔離。它僅應用於不以 root 身份運行的進程,因為 root 用戶可以輕鬆地脫離監獄。
該思路是創建一個目錄樹,在其中複製或鏈接運行該進程所需的所有系統文件。然後,你可以使用
chroot()
系統調用來告訴它根目錄現在位於此新樹的基點上,然後啟動在該 chroot 環境中運行的進程。由於該命令因此而無法引用修改後的根目錄之外的路徑,因此它無法在這些位置上執行惡意操作(讀取、寫入等)。(引文)
18、如何保護你的系統免遭黑客攻擊?
遵循最低特權原則和這些做法:
- 使用公鑰加密,它可提供出色的安全性。
- 增強密碼複雜性。
- 了解為什麼要對上述規則設置例外。
- 定期檢查你的例外情況。
- 讓具體的人對失敗負責。(它使你保持警惕。)(引文)
19、什麼是 LVM,使用 LVM 有什麼好處?
LVM(邏輯卷管理)是一種存儲設備管理技術,該技術使用戶能夠合併和抽象化組件存儲設備的物理布局,從而可以更輕鬆、靈活地進行管理。使用設備映射器的 Linux 內核框架,當前迭代(LVM2)可用於將現有存儲設備收集到組中,並根據需要從組合的空間分配邏輯單元。
20、什麼是粘性埠?
粘性埠是網路管理員最好的朋友,也是最頭痛的事情之一。它們允許你設置網路,以便通過將交換機上的每個埠鎖定到特定的 MAC 地址,僅允許一台(或你指定的數字)計算機在該埠上進行連接。
21、解釋一下埠轉發?
嘗試與安全的網路內部的系統進行通信時,從外部進行通信可能非常困難,這是很顯然的。因此,在路由器本身或其他連接管理設備中使用埠轉發表可以使特定流量自動轉發到特定目的地。例如,如果你的網路上運行著一台 Web 伺服器,並且想從外部授予對該伺服器的訪問許可權,則可以將埠轉發設置為該伺服器上的埠 80。這意味著在 Web 瀏覽器中輸入你的(外網)IP 地址的任何人都將立即連接到該伺服器的網站。
請注意,通常不建議允許從你的網路外部直接訪問伺服器。
22、對於 IDS,誤報和漏報是什麼?
當入侵檢測系統(IDS)設備為實際上沒有發生的入侵生成警報時,這是 誤報(假陽性) 。如果設備未生成任何警報,而入侵實際上已發生,則為 漏報(假陰性)。
23、解釋一下 :(){ :|:& };:
,如果已經登錄系統,如何停止此代碼?
這是一枚復刻炸彈。它分解如下:
:()
定義了函數,以:
作為函數名,並且空括弧表示它不接受任何參數。{}
是函數定義的開始和結束。:|:
將函數:
的副本載入到內存中,並將其輸出通過管道傳遞給函數:
的另一個副本,該副本也必須載入到內存中。&
使前一個命令行成為後台進程,因此即使父進程被自動殺死,子進程也不會被殺死。:
執行該函數,因此連鎖反應開始。保護多用戶系統的最佳方法是使用特權訪問管理(PAM)來限制用戶可以使用的進程數。
復刻炸彈的最大問題是它發起了太多進程。因此,如果你已經登錄系統,我們有兩種嘗試解決此問題的方法。一種選擇是執行一個
SIGSTOP
命令來停止進程,例如:
killall -STOP -u user1
如果由於佔用了所有進程而無法使用命令行,則必須使用
exec
強制其運行:
exec killall -STOP -u user1
對於復刻炸彈,最好的選擇是防患於未然。
24、什麼是 OOM 殺手,它如何決定首先殺死哪個進程?
如果內存被進程徹底耗盡,可能會威脅到系統的穩定性,那麼 內存不足 (OOM)殺手就登場了。
OOM 殺手首先必須選擇要殺死的最佳進程。最佳在這裡指的是在被殺死時將釋放最大內存的進程,並且對系統來說最不重要。主要目標是殺死最少數量的進程,以最大程度地減少造成的損害,同時最大化釋放的內存量。
為了實現此目標,內核為每個進程維護一個
oom_score
。你可以在/proc
文件系統中的pid
目錄下的看到每個進程的oom_score
:
$ cat /proc/10292/oom_score
任何進程的
oom_score
值越高,在內存不足的情況下被 OOM 殺手殺死的可能性就越高。(引文)
總結
系統管理人員的薪水差別很大,有些網站上說年薪在 70,000 到 100,000 美元之間,具體取決於地點、組織的規模以及你的教育水平以及多年的工作經驗。系統管理的職業道路最終歸結為你對使用伺服器和解決那些酷問題的興趣。現在,我要說,繼續前進,實現你的夢想之路吧!
via: https://opensource.com/article/19/7/sysadmin-job-interview-questions
作者:DirectedSoul 選題:lujun9972 譯者:wxy 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive