原文出自:http://os.51cto.com/art/201101/241510.htmnginx
本文分享的都是系统管理员在工做的时候容易犯的错误,经抚琴煮酒整理并提供解决方法,但愿能够给你们一些指导,避免在工做中出现此类问题。 shell
做者简介:余洪春(博客),网名抚琴煮酒,英文名Andrew.Yu,武汉某外企高级Linux/Unix系统管理员、项目实施工程师,红帽RHCE讲师,擅长负载均衡高可用和中小型证券类和商务网站架构,目前关注网站架构研究及网络安全。windows
51CTO推荐专题:系统运维秘诀安全
问题描述: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
问题描述:
公司有系统管理员离职了,有很多Windows 2003服务器,此时负责安全的部门要求接手的系统管理员更改Administrator密码,粗心的系统管理员急急忙忙更改windows密码后,却发现windows的计划任务全都执行不了,由于windows的计划任务都要求输入正确的Administrator密码。
解决办法:
你们养成好习惯,每次更改完windows密码必定要检查一下计划任务,不然很容易致使公司的重要业务执行不了进而影响中整个网站的运维及业务,但愿此问题能引发你们的注意。
问题描述:
系统总监嫌托管的新Linux服务器root密码过于简单,吩咐公司的系统管理员将密码改复杂些,急躁的系统管理员用passwd root密码改掉后赶车回公司,杯具的发现密码设置得过于复杂,密码给忘了。因为机器是新装,没有配置具备sudo权限的用户,本身远程都进不了root了。这种问题就只有百分百靠系统管理员负责了。
解决方法:
这个问题只要养成良好的习惯就能够预防,就是你们更改完root密码后,别急着退出,能够用ctrl+shift+F2或F3-F8尝试用另外一个终端进去下,若是当时就忘了,立刻切换到F1更换。抚琴煮酒常常犯这种错误,呵呵,但愿此法对你们有效。
问题描述:
我在配置某机房Linux服务器的iptables时,不当心设置了某一项错误参数,结果锁定了SSH会话,致使咱们经理及另外一技术员连不上服务器。
解决方法:
下面介绍的这个方法及其有用,强烈推荐给你们:为了预防此类问题出现,能够配置一计划任务crontab,每5分钟运行一次,即
*/5 * * * * root /bin/sh /root/firestop.sh
firestop.sh内容为:
service iptables stop
这样即便你的脚本存在错误设置(或丢失的)规则时,也不至于将你锁在计算机外而没法返回与计算机的链接。这样你就能够放心大胆的调试你的脚本啦。这都是生产环境下逼出来的,呵呵。
问题描述:
同事在处理Linux服务器时,移走了一块硬盘,而后就直接启动红帽RHEL5,发现进了Emergency模式,焦急中他连忙跑过来找我;我第一句就是问他:你改动了硬件没,他说他移走了硬盘后就直接启动了,不是跟windows 2003同样嘛,有什么问题?我都无语了……
解决办法:
耐心跟他讲解了 Linux下/etc/fatab的做用及语法,告诉他能够在Emergency模式下输入root密码进入此模式,而后用
mount –o remount,rw /
将/分区设置成可读写,编辑/etc/fatab,将移除的硬盘用#号屏蔽掉后重启服务器,故障解除。
问题描述:
同事远程处理一台机房的FreeBSD 8.1机器,想加一个具备sudo用户的特殊用户,因此编辑了/etc/sudoer文件,却不当心多加了一个.,而后直接保存退出了。结果杯具发生了:因为sudoer文件损坏,全部具备sudo权限的用户均不能切换到root模式下工做,而FreeBSD8.1与Linux不一样,它默认是不容许root远程链接的。
解决方法:
这时只有请专人到机房去处理问题了……
问题描述:
一个开发小组都是用内部机房的Linux/FreeBSD机器,你们都知道root的密码;不知哪一个兄弟是搞着好玩仍是怎么的,偷偷的改了root密码却不通知你们,结果你们都用不了root密码,杯具了。
解决办法:
此时处理办法有2种,一种就是你们都知道的单用户模式修改root,其实另外一个办法也蛮简单的,系统管理员应该多配置一个具备sudo权限的用户,遇到此种状况时能够用sudo权限来修改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
重启后一切正常。
问题描述:
普通用户用vi编辑nginx.conf 等配置文件,保存的时候会提示:没有Root Permission
解决办法:
其实只要保存时加上:
:w !sudo tee %
就能够了。
“:w !sudo tee %”这条命令的含义是把当前编辑的文件的内容当作标准输入输入到命令sudo tee 文件名里去。也就是sudo保存为当前文件名,至关管用的命令,尤为适用于FreeBSD和Debian系统(我常常忘了本身原来不是root了),至关very nice.
系统管理员容易犯的错误和解决方法暂时就总结到这里,但愿对你们有帮助!若是你们有什么问题,也欢迎在评论中沟通。