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