1991年10月5日,Linus Torvalds在新闻组(毕竟,那个年代的新闻组还不像现在这样充满了广告信息)comp.os.minix上张贴了如下消息: “您是否期待着在minix-1.1中编写自己的设备驱动程序?您是否在毫无计划地尝试让操作系统可以按照自己的需求更改?这一切在minix上是否让您感到灰心?难以让一个极好的程序通宵持续运行?这个公告就适合您:-)” Linus坚持向世界介绍其最初的Linux,令他始料未及的是,他所发行的Linux会成为世界上最受欢迎的操作系统之一,仅次于Microsoft Windows。14年来,围绕Linux形成了整个产业。可能我们中的某些人就在使用Linux及其变种。 提示: 要查看Linus Torvalds最初张贴的全部内容,可以在Google中搜索关键字“Linus’ first post about Linux”,搜索结果中的第一个链接即为Google组的地址。如果要了解更多Linux的历史,也可以访问网站 以前使用的Linux和现在所使用的Linux不太一样。当作者在1994年第一次安装Slackware时,获得基本可用的外设就是一个很大的挑战。举例来说,Linux的GUI环境就需要数小时的等待,这个过程会造成显示器发出“咔哒”的响声,如果真的发生这种情况,可能就需要重新购买一个显示器了。同样,从Internet上下载的软件可能需要管理员调试源代码问题之后才能正常工作。Linux可能已经成为了一个可靠的系统,但是它并不适合心脏衰弱的人。 与此形成鲜明对比的是,如今大多数的Linux发行版实际上只需要安装和配置,用户可能使用的所有外围设备几乎都可以在Linux下正常工作。现在,可能只有在其他UNIX平台上获取一些软件还算是有点挑战性的工作,因为大多数的新软件都是基于Linux编写的,在其他UNIX平台上需要一点点改变(如果您还是一个Irix或者HPUX的系统管理员的话,祝您成功!)。 这种改革引起了整个业界的支持,包括基础架构的选择以及企业级的软件。毕竟,像Oracle这样在支持其他操作系统之前首先支持Linux平台其软件的新版本,是需要很大的勇气的。 本书最初编写于1999~2000年,随着时代的变化进行了几次重大的改版。第四版中展示了当前Linux的更新状态、管理员可用的选择以及企业级服务器的市场占有情况。在当前Internet为中心的市场中,从安全到性能的任何细节都成为要满足的基本需求。 本书并不是评述其他操作系统的选择是如何愚蠢的。与其他任何的技术一样,Linux只是一个工具而已。本书的目的是为读者提供一些有关Linux服务器运行的信息武装自己,这样就可以为特定的解决方案做出最佳决定,而并不只是痴迷于某个操作系统。 本书适宜的读者 本书的书名中包含了“基础教程”这样的字眼,也就是说,本书适合于初学者阅读。首先本书中假定读者已经对Windows中的power user级别或更高级的用户比较熟悉;其次,读者应该对小型、中型的Windows网络运行的相关术语比较熟悉。任何大型网络的管理经验或者高级的Windows技术(例如活动目录)都有助于本书的学习,但都不是必需的。 做出以上假定的原因是,作者不希望本书成为一本傻瓜指南。市面上已经有很多这样的书籍了,这类书只讲述怎么做而不讲解其原因,本书可不是这样的。此外,作者也不想花时间描述Windows下power user的一些常识问题,因为大多数的读者对此已经很有经验,没有必要在此重复这些问题。 除了假定读者具有Windows应用背景,本书还假定大家对更多信息也很感兴趣。毕竟,本书中对每个话题的描述只有大约几十页的内容,但实际每个话题都有专门的整本书来研究。基于此,在本书的各章中列举了对其他参考书目的引用,建议大家阅读那些推荐的书目或者网站内容。不管读者的技术有多好,每一次的学习都会带来新的收获! 本书结构 本书分为五个部分: 第一部分:安装Linux操作系统作为服务器软件 第一部分包括3章内容(第1章“Linux发行版本和Windows 2003的技术摘要”、第2章“按服务器配置安装Linux”、第3章“安装软件”),向读者介绍了什么是Linux,Linux和Windows在一些关键方面的对比,Fedora Core的安装,以及如何安装源代码和预打包的软件。基本上,这些知识的学习就可以将读者从现有的Windows环境下吸引到Linux平台,并且有助于之后对Linux工作原理的学习。 第二部分:单主机系统的管理 第二部分涵盖了管理一个没有网络连接的独立系统所必要的信息,这些内容最初可能没什么用处,但实际上是其他很多概念构建的基础,它们对于其他概念的理解、甚至是连接到网络的系统也是很有必要的。 这部分共包括7章内容。第4章“用户管理”包括了添加用户、删除用户以及用户管理其他方面的必要信息,并引入了多用户操作的基本概念,介绍了用户如何安全地使用应用程序。在第5章“命令行”中,介绍了在Linux命令行下工作时的一些基本操作,通过这一章的学习,读者将会适应没有图形界面的Linux,虽然图形界面现在是默认提供的。虽然可以通过图形界面管理一个系统,但是最好还是同时熟悉命令行和图形化管理界面两种管理界面(这一点也同样适用于Windows。读者可以打开命令提示符,运行netsh,然后试着在图形界面中做相同的工作)。 习惯了命令行之后,就可以开始第6章“开机和关机”的学习。这一章详细介绍了Linux启动和关闭的过程,其中包括在开机和关机过程中服务的启动和关闭。通过本章的学习,读者应该具备向Linux系统中添加新服务的能力。 第7章“文件系统”主要介绍基本的文件系统的组织、创建及其管理(最重要的)。在第8章“核心系统服务”中介绍了一些基本工具的使用,例如使用xinetd来安排应用程序在指定的时间运行。Linux中的xinetd与Windows下的sychost、syslog类似,它们负责统一框架下的应用程序的日志记录,也可以将syslog认为是事件查看器的更灵活的版本。 第9章“编译Linux内核”和第10章“proc文件系统”是这一部分的结束,这里涵盖了Linux内核的概念以及如何使用proc文件系统调整内核的技巧。第9章讲述了在Linux下编译、安装自定义内核的过程,这一章的学习可以使管理员更加细致地控制其系统操作。在第10章中通过proc文件系统对内核级别配置和变量的查看,可以使管理员更容易、更好地调整Linux内核操作,而不像操作Windows的regedit(注册表编辑器)那样复杂。 第三部分:安全和网络 本书的前一版中,在书的最后有关于安全和网络的内容介绍,而这本书中将其作为一个独立的部分。原因在于:随着时间的推移,大多数的系统管理员现在都需要掌握高级的网络概念,这是最近几年一个显著的改变。 随着对Internet安全的日益重视,按照美国Sarbanes Oxley法案和HIPAA法案的规定,Linux在安全环境中的使用也被人们所重视。因此,本书在介绍基于网络的服务之前,首先引入网络安全这一主题。 这一部分的内容从第11章“TCP/IP网络管理”开始,本章提供了系统管理员需要了解的TCP/IP相关的详细内容,还提供了一些故障排除工具的使用示例,例如使用tcpdump来捕获报文并阅读其内容、TCP连接的原理分析等等。这些工具可以帮助系统管理员进行有效的网络故障排除。 第12章“网络配置”又回到管理话题中,这一章介绍网络的基本配置,包括设置IP地址、路由条目,设置还包括多个IP地址的设置。在第13章“配置Linux防火墙”中,介绍了更高级的网络概念以及如何构建一个基于Linux的防火墙。 在第14章“本地安全”和第15章“网络安全”中,详细讨论了系统和网络安全问题,其中包括了Linux特有的安全问题及通常的解决方法以及更好地配置系统以防止其遭受攻击的技巧。 第四部分:Internet服务 本书剩余的内容明显分为两部分:Internet服务和Intranet服务。这里将那些直接暴露在Internet上的服务定义为Internet服务,如Web服务和DNS服务。 第四部分的内容从第16章“DNS”开始,本章讲述了如何安装、配置、管理DNS服务器,并介绍了DNS的工作原理以及一些常用的DNS故障排除的技巧和工具。第17章“FTP”中主要介绍FTP服务器的相关问题,与第16章一样,这里也介绍了一些FTP协议本身的背景信息及其发展演变中的一些备忘。 第18章“使用Apache安装Web服务器”将介绍当今Linux最流行的应用之一:运行Apache服务器软件来担任Web服务器的角色。在这一章中介绍了Apache Web服务器的安装、配置、管理,以及虚拟主机的安装与配置。 在第19章“SMTP”和第20章“POP和IMAP”中,通过SMTP、POP以及IMAP服务器的安装和配置进入E-mail的讲解,这部分中涵盖了这3种服务器的所有配置、它们之间的交互、分别通过命令行和telnet进行的测试以及它们在异构环境中的使用。这本书与其他Linux书籍的不同之处在于:这里并没有讲解传统的sendmail服务器,而是使用Postfix SMTP服务器作为例子,这是因为后者提供了一种具有更安全记录的更灵活的服务器配置。 这一部分以第21章“安全Shell(SSH)”作为结束,对于任何服务器来讲,配置管理SSH服务都是必需的,而不管它们是否具备邮件功能。 第五部分:Intranet服务 通常将那些在防火墙之后运行的、只有内部用户可以访问的服务定义为Intranet服务。这种情况下的Linux服务很多,这里将从第22章“网络文件系统”开始,网络文件系统(Network File System,NFS)迄今已有接近20年的历史,经过不断的发展与壮大,它已经能很好地满足用户的需求。在这一章中,介绍了Linux的NFS服务器的功能,包括如何安装、配置客户端和服务器端以及其故障排除。接下来,在第23章“网络信息服务”开始讨论网络信息服务(Network Information Service,NIS),NIS通常和NFS服务器部署在一起,用来为网络中所有的用户提供名称服务,这里应该重点关注在大量用户的环境中NIS的工作问题。 第24章“Samba”中介绍了使用Samba服务来共享磁盘和其他资源。使用Samba,管理员可以在不安装任何客户端软件的情况下与Windows用户共享磁盘和打印机。因而,Linux服务器可以同时支持运行NFS的UNIX系统和运行Samba的Windows系统。 在第25章“LDAP”中将再次介绍目录服务,本章中将学习如何使用这个标准服务来向用户提供目录服务,它既可以向Windows系统提供邮件目录,也可以向UNIX系统提供邮件目录。 在第26章“打印”中,介绍了Linux的打印子系统。同时使用打印子系统和Samba可以向Windows桌面用户提供无缝的打印支持。因而,可以很好地为Linux、Windows、甚至MAC OS X用户在一台服务器上提供集中的打印。 第27章“DHCP”涵盖了Linux系统的又一个常见用途:DHCP服务器。在这一章中讲述了如何部署ISC DHCP服务器的步骤。ISC DHCP服务器提供了很多传统的DHCP服务器所没有的特性和访问控制。 这一部分以第28章“备份”结束,本部分是最重要的管理任务之一。Linux通过使用磁带提供了两种常见的备份方式,这一章中对这两种方式分别进行了介绍,另外还讲述了它们在备份计划任务中的使用。此外,本章还讨论了一般备份的设计以及对备份系统的优化。 附加资源 虽然我们希望这本书的出版中没有任何错误,但这是不可能的。本书的勘误表张贴在,如果发现了本书中错误,欢迎读者提交勘误更新。 我们同样欢迎读者的反馈和注解。不过由于工作关系,我们无法对于每条反馈都逐一答复,因此,如果查找特定问题的帮助,选择在线的Linux论坛会更合适(最好从开始)。如果对本书有什么建议的话,欢迎与我们联系,联系E-mail为:linuxadmin@planetoid.org。