本文分享的都是系统管理员在工作的时候容易犯的错误,经抚琴煮酒整理并提供解决方法,希望可以给大家一些指导,避免在工作中出现此类问题。
一、安装FreeBSD后无法重启
问题描述:
装惯了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
二、更改Admin密码导致计划任务无法执行
问题描述:
公司有系统管理员离职了,有不少Windows 2003服务器,此时负责安全的部门要求接手的系统管理员更改Administrator密码,粗心的系统管理员急急忙忙更改windows密码后,却发现windows的计划任务全都执行不了,因为windows的计划任务都要求输入正确的Administrator密码。
解决办法:
大家养成好习惯,每次更改完windows密码一定要检查一下计划任务,否则很容易导致公司的重要业务执行不了进而影响中整个网站的运维及业务,希望此问题能引起大家的注意。
三、root密码更改后无法远程登录
问题描述:
系统总监嫌托管的新Linux服务器root密码过于简单,吩咐公司的系统管理员将密码改复杂些,急躁的系统管理员用passwd root密码改掉后赶车回公司,杯具的发现密码设置得过于复杂,密码给忘了。由于机器是新装,没有配置具有sudo权限的用户,自己远程都进不了root了。这种问题就只有百分百靠系统管理员负责了。
解决方法:
这个问题只要养成良好的习惯就可以预防,就是大家更改完root密码后,别急着退出,可以用ctrl+shift+F2或F3-F8尝试用另一个终端进去下,如果当时就忘了,马上切换到F1更换。抚琴煮酒经常犯这种错误,呵呵,希望此法对大家有效。
四、锁定了SSH会话
问题描述:
我在配置某机房Linux服务器的iptables时,不小心设置了某一项错误参数,结果锁定了SSH会话,导致我们经理及另一技术员连不上服务器。
解决方法:
下面介绍的这个方法及其有用,强烈推荐给大家:为了预防此类问题出现,可以配置一计划任务crontab,每5分钟运行,即
*/5 * * * * root /bin/sh /root/firestop.sh
firestop.sh内容为:
service iptables stop
这样即使你的脚本存在错误设置(或丢失的)规则时,也不至于将你锁在计算机外而无法返回与计算机的连接。这样你就可以放心大胆的调试你的脚本啦。这都是生产环境下逼出来的,呵呵。
五、移走硬盘造成Emergency模式
问题描述:
同事在处理Linux服务器时,移走了一块硬盘,然后就直接启动红帽RHEL5,发现进了Emergency模式,焦急中他连忙跑过来找我;我句就是问他:你改动了硬件没,他说他移走了硬盘后就直接启动了,不是跟windows 2003一样嘛,有什么问题?我都无语了……
解决办法:
耐心跟他讲解了 Linux下/etc/fatab的作用及语法,告诉他可以在Emergency模式下输入root密码进入此模式,然后用
mount –o remount,rw /
将/分区设置成可读写,编辑/etc/fatab,将移除的硬盘用#号屏蔽掉后重启服务器,故障解除。
六、sudoer文件损坏造成无法进入root模式
问题描述:
同事远程处理一台机房的FreeBSD 8.1机器,想加一个具有sudo用户的特殊用户,所以编辑了/etc/sudoer文件,却不小心多加了一个。,然后直接保存退出了。结果杯具发生了:由于sudoer文件损坏,所有具有sudo权限的用户均不能切换到root模式下工作,而FreeBSD8.1与Linux不同,它默认是不允许root远程连接的。
解决方法:
这时只有请专人到机房去处理问题了……
七、root密码被更改
问题描述:
一个开发小组都是用内部机房的Linux/FreeBSD机器,大家都知道root的密码;不知哪个兄弟是搞着好玩还是怎么的,偷偷的改了root密码却不通知大家,结果大家都用不了root密码,杯具了。
解决办法:
此时处理办法有2种,一种就是大家都知道的单用户模式修改root,其实另一个办法也蛮简单的,系统管理员应该多配置一个具有sudo权限的用户,遇到此种情况时可以用sudo权限来修改root的密码,至少免得跑到机房去。毕竟有时候,机房未必在市内或在国内的。
八、依赖的库文件丢失导致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
重启后一切正常。
九、忘记以su模式进入编辑器
问题描述:
普通用户用vi编辑nginx.conf 等配置文件,保存的时候会提示:没有Root Permission
解决办法:
其实只要保存时加上:
:w !sudo tee %
就可以了。
“:w !sudo tee %”这条命令的含义是把当前编辑的文件的内容当做标准输入输入到命令sudo tee 文件名里去。也就是sudo保存为当前文件名,相当管用的命令,尤其适用于FreeBSD和Debian系统(我经常忘了自己原来不是root了),相当very nice.
Linux管理员易犯的十种错误和解决方案
错误一:不经过严格审核,从多种渠道安装各种类型的应用程序
如果你在运行Ubuntu,你会知道包管理程序使用的是.deb软件包。而你找到的许多应用程序是以源代码的形式提供的。这些程序安装后也许能够正常工作。但是你为什么不能随意安装程序呢?因为如果你以源的形式安装了程序,那么,你的软件包管理系统将无法跟踪你所安装的东西。因此,在程序包A(以源的形式安装)依赖于程序包B(从一个.deb库安装的),而软件包B是从更新管理器更新的时候,会发生什么事情呢?程序包A可能运行,也可能无法运行。不过,如果程序包A和B都从.deb库安装的话,二者都能运行的机会将更高。此外,在所有的程序包都来自于同样的二进制类型时,更新程序包将更为容易。
错误二:忽视更新
这并不是说Linux管理员缺乏技巧。不过,许多Linux管理员在运行了Linux之后,以为日后就无事可做了,以为它安全可靠。其实,新的更新可以为一些新的漏洞打上补丁。维持更新可以在一个易受损的系统与一个安全的系统之间构造分水岭。Linux的安全来自于不断地维护。为了实现安全性,为了使用一些新的特性和稳定性,任何管理员都应当跟上Linux的更新步伐。
错误三:糟糕的口令
root 的口令通常是Linux王国的关键。保障你的用户口令的健壮性至关重要。如果你的口令比较长,且难于记忆,可将这个口令存放在一个可被加密的位置。在需要这个口令时,可用解密软件解开这个口令使用之。
错误四:将服务器启动进入到X
在一台机器是专用服务器时,你可能会想到安装X,这样一些管理任务就会简单一些。不过,这并不意味着用户需要将服务器启动进入到X。这样会浪费珍贵的内存和CPU资源。相反地,你应当在级别3上停止启动过程,进入命令行模式。这样做不但会将所有的资源留给服务器,而且还会防止泄露机器的机密。要登录到X,用户只需要以命令行方式登录,然后键入startx进入到桌面。
错误五:随意许可,原因是不理解许可
如果对许可配置不当,就会给黑客留下机会。处理许可问题的简单方法是使用所谓的RWE方法,即Read(读取)、Write(写入)、Execute(执行)。假设你想让一个用户能够读取一个文件但不能写入文件。为此,你可以执行:
chmod u+w,u-rx 文件名
记住这一点:777将一个文件的读取、写入、执行的许可给了所有用户,666将一个文件的读取、写入权限给了所有用户,而555将文件的读取、执行权限给了所有用户,还有444、333、222、111等等。
错误六:没有备份关键的配置文件
许多管理员都有这样的体会,在升级到某个X版本,如X11之后,却发现新版本破坏了你的xorg.conf配置文件,以至于你再也无法使用X?建议你在升级X之前,先对以前的/etc/x11/xorg.conf作一个备份,以免升级失败。
错误七:以根用户身份登录
这是一种很危险的错误。如果用户需要根特权来执行或配置一个应用程序,可以在一个标准的用户账户中使用su切换到root用户。在用户以标准用户身份登录时,所有正在运行的X应用程序仍拥有仅限于此用户的访问权。如果用户以根用户身份登录,X就拥有了root的许可。这就会导致两个问题,一、如果用户由GUI犯了一个大错,这个错误对系统来说,有可能是一个巨大的灾难。二、以根用户的身份运行X使得系统更易于遭受攻击。
错误八:没有安装一个可正常运行的内核
你可能不会在一台机器上安装10个以上的内核。但你需要更新内核,这种更新并没有删除以前的内核。你是怎么做的呢?你一直保持使用近的可正常工作的内核。假设你目前正常工作的内核是2.6.22,而2.6.20是备份内核。如果你更新到2.6.26,而在新内核中一切都工作正常,你就可以删除2.6.20了。
错误九:逃避使用命令行
在大多数情况下,图形用户界面是许多人的。不过,命令行使用起来更加容易、快捷、安全、可靠。逃避使用命令行是Linux管理的大忌。
错误十:忽视日志文件
/var/log的存在是有理由的。这是存放所有的日志文件的位置。在发生问题时,你首先需要看一下这里。检查安全问题,可看一下/var/log/secure。这个日志文件保存着所有的一般性错误。在此文件中,你可以得到关于网络、媒体变更等消息。
系统管理员容易犯的错误和解决方法暂时就总结到这里,希望对大家有帮助!
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。