系統(tǒng)管理員這個(gè)職業(yè)它需要一個(gè)了解系統(tǒng)工作原理的人,這樣的人才才能保證數(shù)據(jù)的安全和服務(wù)器的平穩(wěn)運(yùn)行。 但是,小伙伴們可能會(huì)問:「難道系統(tǒng)管理員就只能做這些嗎?」答案是否定的! 讓我先給大家介紹一下典型的系統(tǒng)管理員的日常任務(wù),以及 24 個(gè)常見 Linux 運(yùn)維面試題。 初級(jí)運(yùn)維面試題1. 登錄Linux服務(wù)器后你使用的前五個(gè)命令是什么? 答:
2. 如何在后臺(tái)運(yùn)行程序,這樣做有什么好處? 答:我們可以通過在命令末尾使用符號(hào) & 來使命令在后臺(tái)運(yùn)行。通常,執(zhí)行時(shí)間太長(zhǎng)而不需要用戶交互的應(yīng)用程序會(huì)讓它在后臺(tái)運(yùn)行,這樣可以方便大家可以繼續(xù)在終端中工作。 3. 一直以 root 身份運(yùn)行命令是一個(gè)好習(xí)慣嗎? 答:主要有兩個(gè)問題。以 root 身份運(yùn)行所有工作,首先是風(fēng)險(xiǎn)。當(dāng)我們以 root 身份登錄時(shí),一旦誤操作,后果將是無法挽回的。如果我們以其他身份去修改一些敏感配置,系統(tǒng)會(huì)提示使用 sudo 命令,這樣我們就可以降低犯錯(cuò)的概率。 其次是安全問題。就是如果我們不知道管理員用戶的登陸信息,那么系統(tǒng)是難以入侵的。而有權(quán)限訪問 root 則說明我們已經(jīng)擁有一半的擁有權(quán)了! 4. rm 和 rm-rf 有什么區(qū)別? 答:rm 命令本身僅刪除指定的文件,但不包括目錄。而使用 -rf 選項(xiàng)是添加兩個(gè)附加功能:
5. compress.tgz 的文件大小約為15GB,如何列出它的內(nèi)容,以及如何僅為列出特定文件? 答: $ tar tf archive.tgz 為特定文件列出: $ tar xf archive.tgz 文件名 中級(jí)運(yùn)維面試題6. 什么是RAID?什么是RAID 0,RAID 1,RAID 5,RAID 6和RAID 10? 答: RAID 0:稱為磁盤條帶化,這是一種分解文件并將數(shù)據(jù)分布到RAID組中的所有磁盤驅(qū)動(dòng)器的技術(shù)。但它沒有防止失敗的保障措施。 RAID 1:流行的磁盤子系統(tǒng),通過在兩個(gè)驅(qū)動(dòng)器上寫入相同的數(shù)據(jù)來提高安全性。稱為鏡像,RAID1不會(huì)提高寫入性能,但讀取性能可能會(huì)提高到每個(gè)磁盤性能的總和。此外,如果一個(gè)驅(qū)動(dòng)器發(fā)生故障,則使用第二個(gè)驅(qū)動(dòng)器,并手動(dòng)更換故障驅(qū)動(dòng)器。更換后,RAID控制器將工作驅(qū)動(dòng)器的內(nèi)容復(fù)制到新驅(qū)動(dòng)器上。 RAID 5:通過計(jì)算奇偶校驗(yàn)數(shù)據(jù)和提高速度來提高安全性的磁盤子系統(tǒng)。RAID 5通過跨三個(gè)或更多驅(qū)動(dòng)器(條帶化)交錯(cuò)數(shù)據(jù)來實(shí)現(xiàn)此目的。在單個(gè)驅(qū)動(dòng)器發(fā)生故障時(shí),可以從分布式奇偶校驗(yàn)計(jì)算后續(xù)讀取,使得沒有數(shù)據(jù)丟失。 RAID 6:通過添加另一個(gè)奇偶校驗(yàn)塊來擴(kuò)展 RAID 5。此級(jí)別至少需要四個(gè)磁盤,并且可以繼續(xù)執(zhí)行任何兩個(gè)并發(fā)磁盤故障的讀/寫操作。RAID 6 對(duì)讀取操作沒有性能損失,但由于與奇偶校驗(yàn)計(jì)算相關(guān)的開銷,它確實(shí)會(huì)對(duì)寫操作造成性能損失。 RAID 10:稱為 RAID 1 + 0,RAID 10 結(jié)合了磁盤鏡像和磁盤條帶化來保護(hù)數(shù)據(jù)。它至少需要四個(gè)磁盤,并且跨鏡像對(duì)條帶化數(shù)據(jù)。只要每個(gè)鏡像對(duì)中的一個(gè)磁盤正常工作,就可以檢索數(shù)據(jù)。如果同一鏡像對(duì)中的兩個(gè)磁盤發(fā)生故障,則所有數(shù)據(jù)都將丟失,因?yàn)闂l帶集中沒有奇偶校驗(yàn)。 7. ping命令使用哪個(gè)端口? 答:ping 命令使用 ICMP 。具體來講就是它使用 ICMP 回應(yīng)請(qǐng)求和 ICMP 回應(yīng)回復(fù)數(shù)據(jù)包。這里大家注意,ICMP 不使用 UDP 或 TCP 通信服務(wù),而是使用原始 IP 通信服務(wù)。這意味著 ICMP 消息直接包含在 IP 數(shù)據(jù)報(bào)數(shù)據(jù)字段中。 8. 路由器和網(wǎng)關(guān)有什么區(qū)別?什么是默認(rèn)網(wǎng)關(guān)? 答:路由器描述了一般技術(shù)功能(第3層轉(zhuǎn)發(fā))或用于此目的的硬件設(shè)備,而網(wǎng)關(guān)描述了本地網(wǎng)段的功能(提供到其他地方的連接)。我們還可以聲明'將路由器設(shè)置為網(wǎng)關(guān)'。那么這里就涉及到另一個(gè)術(shù)語(yǔ) hop ,它則是描述了子網(wǎng)之間的轉(zhuǎn)發(fā)。 默認(rèn)網(wǎng)關(guān)一詞用于表示 LAN 上的路由器,它負(fù)責(zé)成為L(zhǎng)AN外部計(jì)算機(jī)通信的第一個(gè)聯(lián)系點(diǎn)。 9. 說明 Linux 的啟動(dòng)過程。 答:BIOS → 主引導(dǎo)記錄(MBR) → GRUB → 內(nèi)核 → init → 應(yīng)用程序 10. 如何在服務(wù)器啟動(dòng)時(shí)檢查錯(cuò)誤信息? 答:內(nèi)核消息始終存儲(chǔ)在 kmsg 緩沖區(qū)中,通過 dmesg 命令可以查看。引導(dǎo)問題和錯(cuò)誤需要系統(tǒng)管理員結(jié)合特定的命令來查找某些重要的文件,這些命令在不同版本的Linux中都有不同的處理式:/var/log/boot.log 是系統(tǒng)引導(dǎo)日志,其中包含系統(tǒng)引導(dǎo)期間展開的所有文件。/var/log/messages 存儲(chǔ)全局系統(tǒng)消息,包括系統(tǒng)引導(dǎo)期間記錄的消息。/var/log/dmesg 包含內(nèi)核環(huán)緩沖區(qū)信息。 11. 符號(hào)鏈接和硬鏈接有什么區(qū)別? 答:符號(hào)鏈接或軟鏈接是指向原始文件的實(shí)際鏈接,而硬鏈接是原始文件的鏡像副本。如果刪除原始文件,則軟鏈接沒有值,因?yàn)樗S后指向一個(gè)不存在的文件。在硬鏈接的情況下,則完全相反。如果刪除原始文件,則硬鏈接仍包含原始文件中的數(shù)據(jù)。 12. 如果是你,你將如何改變內(nèi)核參數(shù)?你可能需要調(diào)整哪些內(nèi)核選項(xiàng)? 答:如果想在類Unix系統(tǒng)中設(shè)置內(nèi)核參數(shù),首先我們要編輯文件 /etc/sysctl.conf 。更改完畢后,保存文件并運(yùn)行 sysctl -p 命令。這項(xiàng)命令使更改成為永久更改,而不需要重新啟動(dòng)計(jì)算機(jī)。 13. 解釋/proc文件系統(tǒng)。 答:/proc 文件系統(tǒng)是虛擬的,并提供有關(guān)內(nèi)核、硬件和運(yùn)行進(jìn)程的詳細(xì)信息。因?yàn)?/proc 包含虛擬文件,所以稱為虛擬文件系統(tǒng)。這些虛擬文件具有獨(dú)特的特性。其中大多數(shù)都列為零字節(jié)大小。虛擬文件諸如(/proc/interrupts、/proc/meminfo、/proc/mounts和/proc/partitions)的提供了系統(tǒng)硬件的最新信息。其他諸如(/proc/filesystems和/proc/sys目錄)則提供系統(tǒng)配置信息和接口。 14. 如何在沒有密碼的情況下以另一個(gè)用戶身份運(yùn)行腳本? 答:假使我們正在編輯 sudoers 文件(例如/private/etc/sudoers),則可以使用visudo添加以下內(nèi)容:user1 all=(user2)NOPASSWD:/opt/scripts/bin/generate.sh 15. 什么是UID 0 toor賬戶?你受到威脅了嗎? 答:toor 用戶是另一個(gè)超級(jí)用戶帳戶,其中 toor 的根拼寫為 backward 。它旨在于非標(biāo)準(zhǔn) shell 一起使用,因此 root 的默認(rèn) shell 不需要更改。shell 不是基本分發(fā)的一部分,而是從端口或包安裝的,它安裝在 /usr/local/bin 中;默認(rèn)情況下,shell 駐留在不同的文件系統(tǒng)中。如果 root 的 shell 位于/usr/local/bin 于中,并且未安裝包含 /usr/local/bin_ 的文件系統(tǒng),則 root 無法登錄以解決問題,并且系統(tǒng)管理員必須重新啟動(dòng)到單用戶模式才能進(jìn)入 shell 的路徑。 高級(jí)運(yùn)維面試題16. tracert如何工作以及它使用什么協(xié)議? 答:tracert 或 tracertoute 命令取決于操作系統(tǒng)是否允許我們?cè)谕ㄟ^連接到最終目標(biāo)的鏈路時(shí)準(zhǔn)確查看到所接觸的路由器。如果我們最終遇到無法連接或無法對(duì)最終目的地執(zhí)行 ping 操作的問題,那么 tracert 可以幫助我們準(zhǔn)確地判斷連接鏈的停止位置。通過這些信息,我們可以聯(lián)系正確的人;不論是自己的防火墻,ISP,目標(biāo) ISP,或是中間的某個(gè)點(diǎn)。像 ping 這樣的 tracert 命令來使用 ICMP 協(xié)議,也可以使用 TCP 三向握手的第一步來發(fā)送 SYN 請(qǐng)求。 17. 使用chroot的主要優(yōu)點(diǎn)是什么?我們何時(shí)使用它以及為何使用它?chroot環(huán)境中mount/dev,mount/proc和mount/sys命令的用途是什么? 答:chroot 環(huán)境的一個(gè)優(yōu)點(diǎn)是,文件系統(tǒng)與物理主機(jī)隔離,因?yàn)?chroot 在文件系統(tǒng)中有一個(gè)單獨(dú)的文件系統(tǒng)。區(qū)別在于chroot使用新創(chuàng)建的根目錄(/)作為其根目錄。 chroot 監(jiān)獄允許我們將進(jìn)程及其子進(jìn)程與系統(tǒng)的其他部分隔離開來。它只能用于不以 root 用戶身份運(yùn)行的進(jìn)程,因?yàn)?root 用戶可以很輕松地越獄。 18. 你將如何保護(hù)你的系統(tǒng)免遭黑客攻擊? 答:在遵循最小特權(quán)原則和以下做法:
19. 什么是LVM,使用它有什么好處? 答:LVM 或稱邏輯卷管理,它使用存儲(chǔ)設(shè)備管理技術(shù),使用戶能夠匯集和抽象組件存儲(chǔ)設(shè)備的物理布局,以實(shí)現(xiàn)輕松靈活地管理。使用設(shè)備映射器 Linux 內(nèi)核框架,可以使用當(dāng)前迭代(LVM2)用于將現(xiàn)有存儲(chǔ)設(shè)備收集到組中,并根據(jù)需要從組合空間分配邏輯單元。 20. 什么是粘性端口? 答:說起粘性端口,它是網(wǎng)絡(luò)管理員最好的朋友之一,但也是最讓人頭疼的。它允許我們?cè)O(shè)置網(wǎng)絡(luò),以便交換機(jī)上的每個(gè)端口只允許一臺(tái)(或我們指定的一組號(hào)碼)計(jì)算機(jī)通過,然后將其鎖定到特定的MAC地址在該端口上連接。 21. 解釋端口轉(zhuǎn)發(fā)。 答:當(dāng)我們?cè)噲D與安全網(wǎng)絡(luò)內(nèi)部的系統(tǒng)進(jìn)行通信時(shí),很難從外部并且有充分理由地進(jìn)行通信。因此,在路由器本身或其他連接管理設(shè)備中使用端口轉(zhuǎn)發(fā)表,這樣就可以允許特定流量自動(dòng)轉(zhuǎn)發(fā)到特定目的地。例如,如果我們的網(wǎng)絡(luò)上運(yùn)行了一個(gè) Web 服務(wù)器,并且我們希望從外部授予對(duì)它的訪問權(quán)限,那么我們呢就可以設(shè)置端口轉(zhuǎn)發(fā)到相關(guān)服務(wù)器上的端口80。這意味著任何在Web瀏覽器中輸入我們的IP地址的人都會(huì)立即連接到服務(wù)器的網(wǎng)站。 這里大家請(qǐng)注意一下,通常不建議允許從外部直接訪問服務(wù)器到我們的網(wǎng)絡(luò)中。 22. 在IDS的情況下,什么是假陽(yáng)性和假陰性? 答:當(dāng)入侵檢測(cè)系統(tǒng)(IDS)設(shè)備為實(shí)際未發(fā)生的入侵生成警報(bào)時(shí),這就是假陽(yáng)性。如果實(shí)際上發(fā)生了入侵,但是設(shè)備沒有發(fā)生任何警報(bào),則為假陰性。 23. 解釋:(){:|:&};:以及如果我們已經(jīng)登錄系統(tǒng),則如何停止此代碼? 答:這是一個(gè)叉形炸彈。其分解如下:
保護(hù)多用戶系統(tǒng)的最好辦法是使用特權(quán)訪問管理(PAM)來限制用戶可以使用的進(jìn)程數(shù)。 叉形炸彈最大的問題是它占用了大量的進(jìn)程。一次,當(dāng)我們已經(jīng)登錄系統(tǒng),可以有兩種方打嘗試解決這個(gè)問題:一種是執(zhí)行 SIGSTOP 命令來停止進(jìn)程。例如:killall-STOP-u user1 。但是如果因?yàn)槭褂昧怂羞M(jìn)程而無法正常使用命令行,那么就必須使用 exec 強(qiáng)制它運(yùn)行:exec killall-STOP-u user1。既然我們選擇了叉形炸彈,如何防止它們就首先成為我們需要考慮的一個(gè)大問題。 24. 什么是OOM殺手?它是如何決定首先殺死哪個(gè)進(jìn)程的? 答:如果我們的計(jì)算機(jī)內(nèi)存被進(jìn)程徹底耗盡到可能威脅系統(tǒng)穩(wěn)定性的程度,那么 OOM 殺手就會(huì)出現(xiàn)。OOM 殺手首先它必須選擇要?dú)⑺赖淖罴堰M(jìn)程。這里的最好指的是在被殺死時(shí)可以釋放最大內(nèi)存的進(jìn)程,對(duì)系統(tǒng)來說也是最不重要的。主要目標(biāo)是消除最少數(shù)量的進(jìn)程得以最大限度地減少損壞,同時(shí)也可以最大化釋放內(nèi)存量。為了實(shí)現(xiàn)這個(gè)目的,內(nèi)核會(huì)為每個(gè)進(jìn)程維護(hù)一個(gè)oom_score。我們可以在pid目錄下的/proc文件系統(tǒng)中看到每個(gè)進(jìn)程的oom_score: $ cat / proc / 10292 / oom_score 對(duì)于任何進(jìn)程,它的 oom_score 的值越高,在內(nèi)存不足的情況下就越容易被 OOM 殺手殺死。 系統(tǒng)管理員工資差別其實(shí)還是很大的。有些網(wǎng)站每年提到7~10萬美元,這就取決于地點(diǎn),系統(tǒng)規(guī)模,教育水平以及更重要的自身水平。 |
|