系統管理員易犯錯誤及解決方法彙總

原文出自:http://os.51cto.com/art/201101/241510.htmnginx

本文分享的都是系統管理員在工做的時候容易犯的錯誤,經撫琴煮酒整理並提供解決方法,但願能夠給你們一些指導,避免在工做中出現此類問題。 shell

做者簡介:餘洪春(博客),網名撫琴煮酒,英文名Andrew.Yu,武漢某外企高級Linux/Unix系統管理員、項目實施工程師,紅帽RHCE講師,擅長負載均衡高可用和中小型證券類和商務網站架構,目前關注網站架構研究及網絡安全。windows

51CTO推薦專題:系統運維祕訣安全

1、安裝FreeBSD後沒法重啓

問題描述:bash

裝慣了Linux的人確定知道通常會有個boot分區,但是在bsd就不那麼容易了。在安裝FreeBSD 8.1的時候遇到了問題,查閱了chinaunix上面,正好也有相關問題整理,特摘錄以下:服務器

我要求FreeBSD分區:網絡

2G For /
4G For swap
10G For /root
256M For /boot
其他 for /usr

安裝正常,結果安裝重啓後便出現杯具了:架構

>> FreeBSD/i386 BOOT
Default: 0:da(0,a)/boot/kernel/kernel
boot:

緣由:負載均衡

經過網上查資料,瞭解到手動引導的全過程,發現了問題所在:運維

因爲獨立分區/boot形成了FreeBSD引導過程當中沒法正確找到內核引導的位置。

解決方法:

經過

boot: 0:da(0,e)/loader

能夠解決引導問題,而後進入loader界面

*這個引導盤符根據da0s1x 的 x 得來,所以你安裝系統的時候/boot所在分區區號,纔是真正的x字母,若是不知道就從日後試試

一樣因爲默認kernel位置是/boot/kernel因此依然須要手動加載

ok load kernel/kernel

得到kernel信息後

ok boot

這樣就能夠正常引導了。

可是這樣尚未完全解決問題,隨後還須要在磁盤掛載的時候輸入

mount root>ufs:/dev/da0s1a

才能進入系統,並且每次重啓都手動一次。因此其實問題沒有完全解決。

因此,爲了不以上的/boot問題,目前我裝機通常規範化操做,通常只分三個區,避免獨立分區/boot,也但願玩Linux的朋友們重視下這個問題。

2048M For /
4096M For swap
其他的均For /usr

2、更改Admin密碼致使計劃任務沒法執行

問題描述:

公司有系統管理員離職了,有很多Windows 2003服務器,此時負責安全的部門要求接手的系統管理員更改Administrator密碼,粗心的系統管理員急急忙忙更改windows密碼後,卻發現windows的計劃任務全都執行不了,由於windows的計劃任務都要求輸入正確的Administrator密碼。

解決辦法:

你們養成好習慣,每次更改完windows密碼必定要檢查一下計劃任務,不然很容易致使公司的重要業務執行不了進而影響中整個網站的運維及業務,但願此問題能引發你們的注意。

3、root密碼更改後沒法遠程登陸

問題描述:

系統總監嫌託管的新Linux服務器root密碼過於簡單,吩咐公司的系統管理員將密碼改複雜些,急躁的系統管理員用passwd root密碼改掉後趕車回公司,杯具的發現密碼設置得過於複雜,密碼給忘了。因爲機器是新裝,沒有配置具備sudo權限的用戶,本身遠程都進不了root了。這種問題就只有百分百靠系統管理員負責了。

解決方法:

這個問題只要養成良好的習慣就能夠預防,就是你們更改完root密碼後,別急着退出,能夠用ctrl+shift+F2或F3-F8嘗試用另外一個終端進去下,若是當時就忘了,立刻切換到F1更換。撫琴煮酒常常犯這種錯誤,呵呵,但願此法對你們有效。

4、鎖定了SSH會話

問題描述:

我在配置某機房Linux服務器的iptables時,不當心設置了某一項錯誤參數,結果鎖定了SSH會話,致使咱們經理及另外一技術員連不上服務器。

解決方法:

下面介紹的這個方法及其有用,強烈推薦給你們:爲了預防此類問題出現,能夠配置一計劃任務crontab,每5分鐘運行一次,即

*/5 * * * *  root /bin/sh /root/firestop.sh

firestop.sh內容爲:

service iptables stop

這樣即便你的腳本存在錯誤設置(或丟失的)規則時,也不至於將你鎖在計算機外而沒法返回與計算機的鏈接。這樣你就能夠放心大膽的調試你的腳本啦。這都是生產環境下逼出來的,呵呵。

5、移走硬盤形成Emergency模式

問題描述:

同事在處理Linux服務器時,移走了一塊硬盤,而後就直接啓動紅帽RHEL5,發現進了Emergency模式,焦急中他連忙跑過來找我;我第一句就是問他:你改動了硬件沒,他說他移走了硬盤後就直接啓動了,不是跟windows 2003同樣嘛,有什麼問題?我都無語了……

解決辦法:

耐心跟他講解了 Linux下/etc/fatab的做用及語法,告訴他能夠在Emergency模式下輸入root密碼進入此模式,而後用

mount –o remount,rw /

將/分區設置成可讀寫,編輯/etc/fatab,將移除的硬盤用#號屏蔽掉後重啓服務器,故障解除。

6、sudoer文件損壞形成沒法進入root模式

問題描述:

同事遠程處理一臺機房的FreeBSD 8.1機器,想加一個具備sudo用戶的特殊用戶,因此編輯了/etc/sudoer文件,卻不當心多加了一個.,而後直接保存退出了。結果杯具發生了:因爲sudoer文件損壞,全部具備sudo權限的用戶均不能切換到root模式下工做,而FreeBSD8.1與Linux不一樣,它默認是不容許root遠程鏈接的。

解決方法:

這時只有請專人到機房去處理問題了……

7、root密碼被更改

問題描述:

一個開發小組都是用內部機房的Linux/FreeBSD機器,你們都知道root的密碼;不知哪一個兄弟是搞着好玩仍是怎麼的,偷偷的改了root密碼卻不通知你們,結果你們都用不了root密碼,杯具了。

解決辦法:

此時處理辦法有2種,一種就是你們都知道的單用戶模式修改root,其實另外一個辦法也蠻簡單的,系統管理員應該多配置一個具備sudo權限的用戶,遇到此種狀況時能夠用sudo權限來修改root的密碼,至少省得跑到機房去。畢竟有時候,機房未必在市內或在國內的。

8、依賴的庫文件丟失致使root沒法登錄

問題描述:

咱們的jail母機192.168.21.36,由於root的shell設置成的bash,而其依賴的庫文件libintl.so.8發生丟失,致使了root不能登錄。具體報障以下:

/libexec/ld-elf.so.1: Shared object "libintl.so.8" not found, required by "bash"
Connection to 192.168.21.36 closed.

解決方法:

①用單用戶模式進入系統;

②掃描磁盤(此步非作不可,並且是安全的)

fsck -y 

③將文件系統從新掛載

mount -a 

④將root的默認shell切換到sh

chsh -s sh 

重啓後一切正常。

9、忘記以su模式進入編輯器

問題描述:

普通用戶用vi編輯nginx.conf 等配置文件,保存的時候會提示:沒有Root Permission

解決辦法:

其實只要保存時加上:

:w !sudo tee %

就能夠了。

「:w !sudo tee %」這條命令的含義是把當前編輯的文件的內容當作標準輸入輸入到命令sudo tee 文件名裏去。也就是sudo保存爲當前文件名,至關管用的命令,尤爲適用於FreeBSD和Debian系統(我常常忘了本身原來不是root了),至關very nice.

系統管理員容易犯的錯誤和解決方法暫時就總結到這裏,但願對你們有幫助!若是你們有什麼問題,也歡迎在評論中溝通。

相關文章
相關標籤/搜索