当前位置:文档之家› 鸟哥的私房菜读书笔记

鸟哥的私房菜读书笔记

Linux安装硬盘规划Linux其实就是一个kernel,新内核上开发的软件无法在旧的内核上运行,比如在内核为2.6上开发出来的各种软件就无法在2.4的内核上运行,而且,不同内核的函数库也不相同。

所以,选择linux版本时,需要知道该版本的kernel版本。

1.硬盘的分区与挂载除了硬盘的代号需要特别留意之外,硬盘分区也要清楚。

需要学习fdisk这个重要的分区程序,完成分区后,接下来就要格式化硬盘,格式化需要了解mke2fs命令的用法。

格式完后,需要了解挂载点(一个目录)并进行挂载,挂载使用的命令为mount。

挂载前,想要使用fsk命令来检查一下该分区有没有问题。

但是注意:使用fsck时,请务必先使用umount卸载要被检查的分区。

还有,如果要让某些分区在开机的时候就自动挂载,要记得将其写入/etc/fstab当中,或者是将命令完整的写到/etc/tc.d/rc.local当中。

2.软件包的选择与安装图形界面很容易造成系统的资源损耗,因此服务器上面较少使用图形界面。

为了方便以后的升级与重新安装,在选择软件包时,请务必将下面几个软件包选择进来:make,gcc,kernel-source,kernel-header及kernel—devel。

其中make和gcc是编译软件包必须用到的软件,kernel-devel是一些驱动程序在编译时会用到的函数库或系统数据,这些东西对于台式计算机并不很重要,因此在个大版本的软件包上面都没有默认安装,需要自己选择安装。

这些软件通常都会放在software develop 或者utility项中,请仔细选择。

3.启动设置(Grub/Lilo)在我们进入系统之前,主机会先读BIOS信息,然后会读取第一块硬盘的主引导扇区(Master Boot Recorder ,简称MBR),这个操作是为了让我们的主机了解数据格式,以顺利地将系统的数据读取进来。

MBR上的程序,被称为开机管理程序,在linux中主要的开机管理程序有Grub和LILO两个,他们的运行方式不太相同。

区别:LILO是直接将所有的信息都写入MBR,所以当您设置完配置文件/etc/lilo.conf后,还得将LILO重新安装到MBR中。

至于Grub则是使用类似指针(point)的功能,将启动信息导入配置文件/boot/grub/menu.lst中。

这两个管理程序各有优缺点,可依照个人喜好来选择安装。

如果想实现“多重开机”功能,您必须了解MBR与Super Block的异同点,这都是需要学习的。

安装一台好的linux主机,最重要的一点就在于硬盘的分区,硬盘分区的考虑会影响到主机以后的扩充性,实用性,以及安全性。

了解欲架设的网站服务原理了解每种服务的工作原理,对您以后进行调试相当有用,在主机的规划上也会有一定程度的帮助。

例如:在linux上很有名气的文件服务SAMBA,它的工作原理主要是NetBiOS over TCP/IP,而如果您了解最原始的NetBIOS是无法跨网段的,亦即无法跨路由器的,那么就比较容易了解为何Windows的网络上的“网上邻居”显示的计算机数量只有局域网内部的计算机。

总之,理解服务(Service)的工作流程,将有助于服务器的架设与维护。

这还只是各个服务器的服务原理,如果是在linux上运行,您至少要了解什么事daemon(守护进程)。

服务的软件安装,漏洞修补,软件包升级假设您已经将网络硬件配置搞定了,主机也规划好了,并且也已经可以连上Internet了,知道该服务器的服务原理,那么接下来当然就是:“我的主机上面是否有我要架设的服务器软件包了?”一,使用RPM,locate,find,which等命令来寻找。

二,若没有安装,考虑“软件管理员”这个工具。

目前linux上的软件管理员大多使用RPM与Tarball这两个工具。

RPM与Tarball的优缺点:使用RPM最大的优点是方便管理,因为所有的文件与信息都有记录,所以在搜索,升级,反安装上都相当容易。

不过,这个软件包的依赖问题也会常常导致新手无法立刻进入状态。

此外,RPM有版本方面的问题,不同的linux版本上的RPM还不能相互通用。

如果您对RPM的包依赖问题很反感,那么使用源代码来进行编译则是一个不错的选择。

在系统上能够执行的文件属于二进制文件,那么这些二进制文件是怎么来的呢?以linux常见的二进制文件制作方法,即使用gcc进行编译的过程来说明。

在制作二进制文件之前,首先需要撰写程序代码,这些程序代码大多是以文本编辑器编辑而成的ASCII格式文件,这就是通称的源代码。

然后这些程序代码必须经过编译器(compiler)编译成为我们的系统认识的二进制可执行文件。

在编译的过程中,可能还会使用到很多的函数库(library)。

需注意的是,目前linux上常见的编译器有gcc,g77等,您的源代码需要针对这些编译器的语法进行编写。

一般来说,当发布软件包时,大多采用源代码的方式发布,但因源代码所占用的文件空间比较大,所以常常会压缩之后才放到网站上供人下载,这就是所谓的Tarball了,因此您需要了解tar,gzip,bzip,compress等命令的用法才能够解开Tarball文件。

此外,由于Tarball是源代码,因此,您还必须有编译器以及相关的make,与kernel相关的函数库,才能够成功地将这个软件编辑成为可以在您的系统上运行的二进制文件。

使用Tarball的安装方式,最大的优点是具有弹性,您可以将软件安装在任何您想安装的目录下,还可以自行加入一些额外的参数来设置该软件。

不过,缺点就是当平台不一样时,可能由于某些函数库无法找到,或者是用户的基本知识不足,无法成功编译Tarball。

另外,用Tarball安装时,某些特殊的软件很难进行反安装操作,造成升级与卸载上的困难。

为了随时修补漏洞,您应该熟悉如何进行软件包的升级。

一般来说,使用RPM安装的软件以RPM方式升级,使用Tarball安装的软件则需要先删除后再升级!无论如何,软件的升级是系统管理员经常要进行的工作。

主机配置,启动,观察与调试1.找出配置文件主机配置的第一个步骤就是“需要找到主配置文件”,因为不论您使用的是RPM还是Tarball,由于都是同一个软件包,所以配置文件的文件名是不变的。

所以,熟悉locate,rpm,find和grep等命令就显得很重要了。

2.编辑配置文件既然要配置,当然就要编辑,所以必须学会unix like标准的文本编辑器(vi)。

Vi是学linux过程中相当重要的一课。

需要知道,软件的文件数据(documentation)放置在我们系统的/usr/share/doc里面。

3.启动服务设置完服务的配置文件后,接下来就是启动服务器。

如果您在服务器启动之后进行配置文件的修改,也需要重新启动服务器。

要启动服务器,就需要了解什么是daemons,而daemons又有super daemon与stand alone两种模式,默认路径,stand alone的服务在/etc/init.d/*这个目录中,里面的文件是以BASH shell脚本写成的,所以除了了解daemon之外,还需要熟悉shell脚本的相关语法。

另外,如果是super daemon的话,必须知道启动服务器的设置文件放在/etc/xinetd.d里面,启动的话,则是重新启动/etc/init.d/xinetd这个super daemon。

如果服务器软件是以Tarball安装的,那么启动的时候可能是直接执行二进制文件,这样,就没有shell脚本帮助您启动,关闭,重新读取设置信息。

如果这样的话,您就需要以进程(process)与信号(signal)的方法运行服务器。

对于这部分内容,您需要熟悉ps,top,kill 以及signal number的意义,尤其是当您想要中断当前某个联机时,netstat配合kill的用法是很重要的。

4.观察启动的状态虽然启动了服务器,但是启动后的服务器不一定能够正常运行。

如何观察它是否正常运行呢?首先,您必须具有PID的概念,利用netstat观察PID与端口号的信息来判断服务器是否正常工作。

还有,任何系统信息都会记录到日志文件里面去,所以,启动完服务器后到该服务器的日志文件中查看一下日志信息,是应当养成的一个习惯。

5.服务器与客户端的权限问题为了了解权限的概念,您必须至少具有UID,GID等linux系统上有关用户账户的概念,每个账号的特殊参数一般放在/etc/passwd与/etc/shadow文件中。

此外,每个文件或目录具有10个属性的特征,这些概念很重要。

如果要让用户管理系统的话,用户身份必须转换成为系统管理员(root),这样就需要教会用户了解su及sudo的用法。

为了防止系统被破坏,适时地减少SUID与SGID等特殊权限的二进制文件,则显得非常重要。

6.设置开机启动该服务服务器设置好,启动正确,对于客户端的权限与服务也设置完毕,接下来就需要在开机时将服务器加载到内存中了。

如何进行这个操作呢?Red Hat/SuSE/Mandriva有chkconfig辅助工具,Red Hat中用ntsysv 做简单的设置。

如果是其他linux版本,就需要了解正常的开关机程序,这里面包含了Run Level的观念,Run Level的读取文件在/etc/inittab中;还有了解/etc/rc.d里的目录与/etc/rc.d/rc.local这个文件的用途。

一般来说,我们使用Tarball安装的软件想要在开机时就启动,都会利用/etc/rc.d/rc.local这个文件来实现。

综上所述,架设好一台主机需要知道:(1)各个process与signal的概念。

(2)账号与群组的概念与相关性。

(3)文件与目录的权限,包括与账号相关的特性。

(4)软件管理器工具的学习。

(5)BASH 的语法与shell scripts的语法,还有很重要的vi。

(6)开机的流程分析,以及记录日志文件的配置分析。

(7)类似quota以及链接文件的概念。

客户端设置,观察与调试一般来说,目前的服务器大多只要针对服务器端设置好即可,客户端我们不需要做太多管理。

不过,某些特殊的软件包,例如SSH,Mail,SAMBA,NAT等,就必须同时配置客户端的权限。

安全性设置1.严格规范用户的密码设置规则(1)修改/etc/login.defs文件里面的规则,让用户需要每半年更改一次密码,且密码长度需要长于8个字符。

(2)利用/etc/secutrity/limits.conf来规范每个用户的相关权限,让您的linux可以较为安全一点。

(3)利用pam模块来额外地进行密码的验证工作。

相关主题