系統(tǒng)管理員易犯錯(cuò)誤及解決方法匯總
原創(chuàng)【51CTO獨(dú)家特稿】本文分享的都是系統(tǒng)管理員在工作的時(shí)候容易犯的錯(cuò)誤,經(jīng)撫琴煮酒整理并提供解決方法,希望可以給大家一些指導(dǎo),避免在工作中出現(xiàn)此類(lèi)問(wèn)題。
作者簡(jiǎn)介:余洪春(博客),網(wǎng)名撫琴煮酒,英文名Andrew.Yu,武漢某外企高級(jí)Linux/Unix系統(tǒng)管理員、項(xiàng)目實(shí)施工程師,紅帽RHCE講師,擅長(zhǎng)負(fù)載均衡高可用和中小型證券類(lèi)和商務(wù)網(wǎng)站架構(gòu),目前關(guān)注網(wǎng)站架構(gòu)研究及網(wǎng)絡(luò)安全。
51CTO推薦專(zhuān)題:系統(tǒng)運(yùn)維秘訣
一、安裝FreeBSD后無(wú)法重啟
問(wèn)題描述:
裝慣了Linux的人肯定知道一般會(huì)有個(gè)boot分區(qū),可是在bsd就不那么容易了。在安裝FreeBSD 8.1的時(shí)候遇到了問(wèn)題,查閱了chinaunix上面,正好也有相關(guān)問(wèn)題整理,特摘錄如下:
我要求FreeBSD分區(qū):
2G For / 4G For swap 10G For /root 256M For /boot 其余 for /usr
安裝正常,結(jié)果安裝重啟后便出現(xiàn)杯具了:
>> FreeBSD/i386 BOOT Default: 0:da(0,a)/boot/kernel/kernel boot:
原因:
通過(guò)網(wǎng)上查資料,了解到手動(dòng)引導(dǎo)的全過(guò)程,發(fā)現(xiàn)了問(wèn)題所在:
由于獨(dú)立分區(qū)/boot造成了FreeBSD引導(dǎo)過(guò)程中無(wú)法正確找到內(nèi)核引導(dǎo)的位置。
解決方法:
通過(guò)
boot: 0:da(0,e)/loader
可以解決引導(dǎo)問(wèn)題,然后進(jìn)入loader界面
*這個(gè)引導(dǎo)盤(pán)符根據(jù)da0s1x 的 x 得來(lái),因此你安裝系統(tǒng)的時(shí)候/boot所在分區(qū)區(qū)號(hào),才是真正的x字母,如果不知道就從往后試試
同樣由于默認(rèn)kernel位置是/boot/kernel所以依然需要手動(dòng)加載
ok load kernel/kernel
獲得kernel信息后
ok boot
這樣就可以正常引導(dǎo)了。
但是這樣還沒(méi)有徹底解決問(wèn)題,隨后還需要在磁盤(pán)掛載的時(shí)候輸入
mount root>ufs:/dev/da0s1a
才能進(jìn)入系統(tǒng),而且每次重啟都手動(dòng)一次。所以其實(shí)問(wèn)題沒(méi)有徹底解決。
所以,為了避免以上的/boot問(wèn)題,目前我裝機(jī)一般規(guī)范化操作,一般只分三個(gè)區(qū),避免獨(dú)立分區(qū)/boot,也希望玩Linux的朋友們重視下這個(gè)問(wèn)題。
2048M For / 4096M For swap 其余的均For /usr
二、更改Admin密碼導(dǎo)致計(jì)劃任務(wù)無(wú)法執(zhí)行
問(wèn)題描述:
公司有系統(tǒng)管理員離職了,有不少Windows 2003服務(wù)器,此時(shí)負(fù)責(zé)安全的部門(mén)要求接手的系統(tǒng)管理員更改Administrator密碼,粗心的系統(tǒng)管理員急急忙忙更改windows密碼后,卻發(fā)現(xiàn)windows的計(jì)劃任務(wù)全都執(zhí)行不了,因?yàn)閣indows的計(jì)劃任務(wù)都要求輸入正確的Administrator密碼。
解決辦法:
大家養(yǎng)成好習(xí)慣,每次更改完windows密碼一定要檢查一下計(jì)劃任務(wù),否則很容易導(dǎo)致公司的重要業(yè)務(wù)執(zhí)行不了進(jìn)而影響中整個(gè)網(wǎng)站的運(yùn)維及業(yè)務(wù),希望此問(wèn)題能引起大家的注意。
三、root密碼更改后無(wú)法遠(yuǎn)程登錄
問(wèn)題描述:
系統(tǒng)總監(jiān)嫌托管的新Linux服務(wù)器root密碼過(guò)于簡(jiǎn)單,吩咐公司的系統(tǒng)管理員將密碼改復(fù)雜些,急躁的系統(tǒng)管理員用passwd root密碼改掉后趕車(chē)回公司,杯具的發(fā)現(xiàn)密碼設(shè)置得過(guò)于復(fù)雜,密碼給忘了。由于機(jī)器是新裝,沒(méi)有配置具有sudo權(quán)限的用戶,自己遠(yuǎn)程都進(jìn)不了root了。這種問(wèn)題就只有百分百靠系統(tǒng)管理員負(fù)責(zé)了。
解決方法:
這個(gè)問(wèn)題只要養(yǎng)成良好的習(xí)慣就可以預(yù)防,就是大家更改完root密碼后,別急著退出,可以用ctrl+shift+F2或F3-F8嘗試用另一個(gè)終端進(jìn)去下,如果當(dāng)時(shí)就忘了,馬上切換到F1更換。撫琴煮酒經(jīng)常犯這種錯(cuò)誤,呵呵,希望此法對(duì)大家有效。
四、鎖定了SSH會(huì)話
問(wèn)題描述:
我在配置某機(jī)房Linux服務(wù)器的iptables時(shí),不小心設(shè)置了某一項(xiàng)錯(cuò)誤參數(shù),結(jié)果鎖定了SSH會(huì)話,導(dǎo)致我們經(jīng)理及另一技術(shù)員連不上服務(wù)器。
解決方法:
下面介紹的這個(gè)方法及其有用,強(qiáng)烈推薦給大家:為了預(yù)防此類(lèi)問(wèn)題出現(xiàn),可以配置一計(jì)劃任務(wù)crontab,每5分鐘運(yùn)行一次,即
*/5 * * * * root /bin/sh /root/firestop.sh
firestop.sh內(nèi)容為:
service iptables stop
這樣即使你的腳本存在錯(cuò)誤設(shè)置(或丟失的)規(guī)則時(shí),也不至于將你鎖在計(jì)算機(jī)外而無(wú)法返回與計(jì)算機(jī)的連接。這樣你就可以放心大膽的調(diào)試你的腳本啦。這都是生產(chǎn)環(huán)境下逼出來(lái)的,呵呵。
五、移走硬盤(pán)造成Emergency模式
問(wèn)題描述:
同事在處理Linux服務(wù)器時(shí),移走了一塊硬盤(pán),然后就直接啟動(dòng)紅帽RHEL5,發(fā)現(xiàn)進(jìn)了Emergency模式,焦急中他連忙跑過(guò)來(lái)找我;我第一句就是問(wèn)他:你改動(dòng)了硬件沒(méi),他說(shuō)他移走了硬盤(pán)后就直接啟動(dòng)了,不是跟windows 2003一樣嘛,有什么問(wèn)題?我都無(wú)語(yǔ)了……
解決辦法:
耐心跟他講解了 Linux下/etc/fatab的作用及語(yǔ)法,告訴他可以在Emergency模式下輸入root密碼進(jìn)入此模式,然后用
mount –o remount,rw /
將/分區(qū)設(shè)置成可讀寫(xiě),編輯/etc/fatab,將移除的硬盤(pán)用#號(hào)屏蔽掉后重啟服務(wù)器,故障解除。
六、sudoer文件損壞造成無(wú)法進(jìn)入root模式
問(wèn)題描述:
同事遠(yuǎn)程處理一臺(tái)機(jī)房的FreeBSD 8.1機(jī)器,想加一個(gè)具有sudo用戶的特殊用戶,所以編輯了/etc/sudoer文件,卻不小心多加了一個(gè).,然后直接保存退出了。結(jié)果杯具發(fā)生了:由于sudoer文件損壞,所有具有sudo權(quán)限的用戶均不能切換到root模式下工作,而FreeBSD8.1與Linux不同,它默認(rèn)是不允許root遠(yuǎn)程連接的。
解決方法:
這時(shí)只有請(qǐng)專(zhuān)人到機(jī)房去處理問(wèn)題了……
七、root密碼被更改
問(wèn)題描述:
一個(gè)開(kāi)發(fā)小組都是用內(nèi)部機(jī)房的Linux/FreeBSD機(jī)器,大家都知道root的密碼;不知哪個(gè)兄弟是搞著好玩還是怎么的,偷偷的改了root密碼卻不通知大家,結(jié)果大家都用不了root密碼,杯具了。
解決辦法:
此時(shí)處理辦法有2種,一種就是大家都知道的單用戶模式修改root,其實(shí)另一個(gè)辦法也蠻簡(jiǎn)單的,系統(tǒng)管理員應(yīng)該多配置一個(gè)具有sudo權(quán)限的用戶,遇到此種情況時(shí)可以用sudo權(quán)限來(lái)修改root的密碼,至少免得跑到機(jī)房去。畢竟有時(shí)候,機(jī)房未必在市內(nèi)或在國(guó)內(nèi)的。
八、依賴(lài)的庫(kù)文件丟失導(dǎo)致root無(wú)法登陸
問(wèn)題描述:
我們的jail母機(jī)192.168.21.36,因?yàn)閞oot的shell設(shè)置成的bash,而其依賴(lài)的庫(kù)文件libintl.so.8發(fā)生丟失,導(dǎo)致了root不能登陸。具體報(bào)障如下:
/libexec/ld-elf.so.1: Shared object "libintl.so.8" not found, required by "bash" Connection to 192.168.21.36 closed.
解決方法:
①用單用戶模式進(jìn)入系統(tǒng);
②掃描磁盤(pán)(此步非做不可,而且是安全的)
fsck -y
③將文件系統(tǒng)重新掛載
mount -a
④將root的默認(rèn)shell切換到sh
chsh -s sh
重啟后一切正常。
九、忘記以su模式進(jìn)入編輯器
問(wèn)題描述:
普通用戶用vi編輯nginx.conf 等配置文件,保存的時(shí)候會(huì)提示:沒(méi)有Root Permission
解決辦法:
其實(shí)只要保存時(shí)加上:
:w !sudo tee %
就可以了。
“:w !sudo tee %”這條命令的含義是把當(dāng)前編輯的文件的內(nèi)容當(dāng)做標(biāo)準(zhǔn)輸入輸入到命令sudo tee 文件名里去。也就是sudo保存為當(dāng)前文件名,相當(dāng)管用的命令,尤其適用于FreeBSD和Debian系統(tǒng)(我經(jīng)常忘了自己原來(lái)不是root了),相當(dāng)very nice.
系統(tǒng)管理員容易犯的錯(cuò)誤和解決方法暫時(shí)就總結(jié)到這里,希望對(duì)大家有幫助!如果大家有什么問(wèn)題,也歡迎在評(píng)論中溝通。
【51CTO.com獨(dú)家特稿,轉(zhuǎn)載請(qǐng)注明原文作者和出處?!?/p>
【編輯推薦】