介绍
- 欢迎阅读 Ubuntu 服务器指南! Ubuntu 服务器指南 包括了在您的 Ubuntu 系统中如何安装和配置满足您需要的不同服务器的相关信息。它是一个循序渐进、面向任务的配置和定制您系统的指南。本手册讨论的主题如下所示:
- 网络配置
- Apache2 的配置
- 数据库
- Windows 联网
本手册主要分为以下几块:
本指南假定您已经对您的 Ubuntu 系统有个基本的了解。如果您需要安装 Ubuntu 的详细帮助,将参考 Ubuntu 安装指南。
安装
- 本章提供了安装 Ubuntu 6.06 LTS Server Edition(服务器版)的快速入门。更多细节说明,请参见 Ubuntu 安装指南。
准备安装
- 准备安装,本部分内容说明在开始安装之前要考虑的各个方面。
系统要求
- Ubuntu 6.06 LTS Server Edition (服务器版)支持三种主要的体系架构: Intel x86、AMD64 和 PowerPC。下表列出了被推荐硬件明细表。您可以根据需要使用比这更少的(硬件)进行管理。然而,大多数用户不应当忽略这些建议,否则风险自负。 表 2-1 最小建议配置
|
安装类型 |
RAM |
硬盘空间 |
|
服务器 |
64 MB |
500 MB | Ubuntu 6.06 LTS Server Edition (服务器版)的默认自述文档已经在下面列出了。当然,安装的尺寸大小极大程序上取决于您在安装过程中安装服务的多少。对于大多数管理员来说,默认的服务对于服务器一般的使用已经足够了。 服务器 这 是一个小型服务器服务列表,它为各种服务器应用程序提供了一个通用基础。它是最低限度的并被设计成可以在其上添加想要的服务,如文件/打印服务、web 主机、邮件主机等。要满足这些服务至少需要 500 MB 的磁盘空间,但考虑添加更多的空间是要取决于在您服务器上您想要提供的服务。 记住这些尺寸并不包括其他的素材如用户文件、邮件、日志和数据。当为您自己的文件和数据考虑空间时最好能留足。
备份
- 在您开始之前,请确保备份了您现在系统上的每个文 件。如果第一次时已经有一个操作系统安装在您的计算机上,那么最合适的办法就是把您的磁盘重新分区,为 Ubuntu 留出空间。无论哪次对您的磁盘进行分区您都应该做好丢失磁盘上所有东西的准备,因为您可能会误操作或者在分区过程中出错,如系统掉电等。在安装中所使用的 程序是相当可靠的,大多数已经用了几年,但它们执行的也是破坏性的操作,一个操作出错可能会把您有价值的数据丢失掉。
- 如果您是想把电脑做成多重引导的系统,请先确定您手头上有电脑里已经存在的这些操作系统的安装介质。特别是当您把启动盘重新分区以后,您可能会发现必须重新安装原有操作系统的启动引导程序,某些情况下,还得重新安装该操作系统并恢复受影响分区上的文件。
从 CD 安装
- 将您的安装 CD 插入 您的 CD-ROM 设备并重启计算机。当从 CD-ROM 重启时安装系统将立即开始。一旦初始化之后,您的第一个安装屏幕将出现。 此时,阅读屏幕上的文字。您也许想看看安装程序提供的帮助屏。如果您想这么做的话,请按 F1 键。 要执行缺省的服务器安装程序,选择 “安装到硬盘” 并按 回车 键。安装过程将开始。简单地根据屏幕上的指示,您的 Ubuntu 系统将被安装。 或者,您要安装一个 LAMP 服务器 (Linux, Apache, MySQL, PHP/Perl/Python),选择 “安装 LAMP 服务器”,并根据指示进行安装。
包管理
- Ubuntu 提供一套全面的包管理系统用于软件的安装、升级、配置和卸载。除了让您 Ubuntu 计算机可以访问组织好的超过 17,000 个软件包的软件库之外,包管理工具还可以解决依赖关系并提供软件更新检查。 一些工具可以和 Ubuntu 包管理系统进行交互,从便于系统管理员做自动化处理的简单命令行工具到便于 Ubuntu 新手使用的简单图形界面。
介绍
- Ubuntu 的包管理系统是从 Debian GNU/Linux 发行版中洐生出来的。包文件包括在您 Ubuntu 系统中实现特定功能或软件所必需的文件、元数据和指令。 Debian 包文件一般用 '.deb' 作后缀,而且位于建立在不同介质上由包组成的 软件库 中,这些介质包括 CD-ROM 光盘和网站。包通常是预编译的二进制形式,因此安装速度快而且软件也无需编译。 许 多复杂的包使用 依赖包 这一概念,依赖包是主包为实现完整功能而要求的附加包。例如,语音合成包 Festival 依赖 festvox-kalpc16k 包,该依赖包提供被应用程序使用的众多声音之一。为了能使 Festival 正常运行,所有依赖包都必须与 Festival 主包同时安装。Ubuntu 软件管理工具将会自动完成这一切。
Apt-Get
- apt-get 命令是一个强大的命令行工具,用于同 Ubuntu 的 Advanced Packaging Tool (APT) 一起执行诸如安装新软件包、升级已有软件包、更新包列表索引,甚至是升级整个 Ubuntu 系统等功能。 作为一个简单的命令行工具,apt-get 对于服务器管理员来说比 Ubuntu 中的其他软件包管理工具有着相当多的优点。这些优点包括便于在简单终端连接 (SSH) 中使用,同时能够用于系统管理脚本中,以便能被cron 动作计划工具自动运行。 apt-get 工具的一些常见用法示例:
apt-get help
Aptitude
配置
其他软件库
3.5.1. 引用
联网
- 网络是由两个或两个以上的设备通过物理线缆或无线连接而成并在连接设备之间共享和分发信息。这些设备包括计算机系统、打印机或用有线或无线连接起来的其它相关设备。 Ubuntu 服务器指南的这部分提供与联网相关的一般和特定信息,包括网络概念的简介以及对常用网络协议及服务器应用程序的详细讨论。
网络配置
- Ubuntu 提供了许多图形化工具来配制您的网络设备。本文适用于服务器管理员并聚焦在命令行中管理您的网络。
4.1.1. 以太网
- 大多数以太网配置都集中在单个文件 /etc/network/interfaces 中。如果您没有以太网设备,那么在该文件中将只出现环回口,该文件看上去类似这样:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5).
# The loopback network interface auto lo iface lo inet loopback address 127.0.0.1 netmask 255.0.0.0 如果您只有一个以太网设备 eth0,被配置成从 DHCP 服务器得到设置,并且在引导时自动激活,那么只需要再添加两行: auto eth0↵ iface eth0 inet dhcp 第 一行说明 eth0 将会在您启动时自动激活。第二行说明该接口 (“iface”) eth0 将有得到一个 IPv4 地址空间 (如果是一个 IPv6 的设备将须将 “inet” 用 “inet6” 代替) 并且它将自动从 DHCP 中自动获得它的配置。假定您的网络和 DHCP 服务都已经被正确配置,该机的网络将不需要更多的配置。DHCP 服务器将提供默认网关 (通过 route 命令来实现) 、设备的 IP 地址 (通过 ifconfig 命令来实现)以及网络使用的 DNS 服务器 (在 /etc/resolv.conf 文件中实现)。 要 把您的以太网设备配置成静态 IP 地址和自定义配置的话,则要求更多的信息。假设您想指定 IP 地址 192.168.0.2 给设备 eth1,其掩码是 255.255.255.0。您的默认网关的 IP 地址是 192.168.0.1。您可以在 /etc/network/interfaces 中输入类似下面的语句: iface eth1 inet static address 192.168.0.2 netmask 255.255.255.0 gateway 192.168.0.1 在这个例子中,您将需要在 /etc/resolv.conf 中手工指定您的DNS服务器,看起来如下: search mydomain.com nameserver 192.168.0.1 nameserver 4.2.2.2 search 语句在试图解析网络名时把 mydomain.com 添到主机名查询中。举个例子,如果您的网络域名是 mydomain.com 并且您试图去 ping 主机 “mybox”,DNS 查询将在解析时改为 “mybox.mydomain.com”。nameserver 语句指定用于将主机名解析成 IP 地址的的 DNS 服务器。如果您使用自己的名称服务器,在这里输入它。否则询问您的 Internet 服务供应商要使用的主、辅 DNS 服务器,并把它们如上所示输入到 /etc/resolv.conf 中。 配 置更多的接口是可能的,包括拨号的 PPP 接口、IPv6 网络、VPN 设备等。更多信息和支持选项请参考 man 5 interfaces。记住 ifup/ifdown 脚本使用的/etc/network/interfaces 是比其他一些 Linux 发行版更高级的配置模式。传统的低级工具如ifconfig、route 和 dhclient 也为了 ad hoc 配置对您来说也是可用的。
4.1.2. 管理 DNS 记录
4.1.3. 管理主机
- 要 管理主机,您可以在 /etc/hosts 文件中添加、编辑或删除主机。该文件包括 IP 地址和相对应的主机名。当您的系统要解析一个主机到 IP 地址或从一个 IP 地址获取主机名时,它将在使用名称服务器之前参考 /etc/hosts 文件。如果该 IP 地址已经在 /etc/hosts 文件中被列出,那么将不再使用名称服务器。这一动作可以通过编辑 /etc/nsswitch.conf 来改变,不过后果自负。 如果您网络所包含计算机的 IP 地址没有在 DNS 中列出,建议您将它们加入到 /etc/hosts 文件中。
TCP/IP
- 传 输控制协议和网际协议 (TCP/IP) 是在 20世纪70年代被美国国防部高级研究规划局 (DARPA)作为在不同类型计算机及计算机网络之间的通信手段而被开发的一个标准协议簇。TCP/IP 是 Internet 的驱动力,因此它是全球最流行的网络协议簇。
4.2.1. TCP/IP 介绍
- TCP/IP 的两个协议组件处理计算机网络的不同方面。网际协议,TCP/IP 中的 "IP" 是一个连接协议,只处理使用 IP 数据报 作为网络信息基本单元的网络包路由。IP 数据报由报头和其后的消息组成。传输控制协议 是 TCP/IP 中的 "TCP",可以使网络主机之间建立用于交换数据流的连接。TCP 也保证连接之间的数据传送以及其在网络主机上的接收顺序与其从另一台网络主机上的发送顺序一致。
4.2.2. TCP/IP 配置
- TCP/IP 协议配置由必须设置的几个元素组成,可以通过编辑相应的配置文件或配置方案如动态主机配置协议 (DHCP) 来设置,它可以配置成提供适当的 TCP/IP 配置来自动设置网络客户机。这些配置值必须正确设置,以便于您的 Ubuntu 系统进行相应网络操作。 TCP/IP 常用配置元素及其作用如下所示:
- IP 地址 IP 地址是唯一标识字符串,它由四部分由点号分隔的,范围从 0 到 255 的十进制数组成。 每部分由8个比特表示,整个地址总长为32个比特。这种格式被称为 dotted quad notation。
- 掩 码 子网掩码 (或简称掩码) 是一个局部位掩码,或用指定的 子网掩码 来将IP 地址中的网络分隔出来的一组标识。举个例子,在 C 类网络中,标准的掩码是 255.255.255.0 屏蔽了 IP 地址的前三个字节,并允许 IP 地址的最后一个字节指定子网中的主机。
- 网 络地址 网络地址表示包括IP 地址网络部分的字节。 例如, 一个 A 类网络的主机 12.128.1.2 将使用 12.0.0.0 作为网络地址,使用 12 来表示 IP 地址的第一个字节 (网络部分), 余下的三个为 0 的字节表示可能的主机值的。网络主机使用象 192.168.1.100 这样非常普遍的不可路由的私有 IP 地址将使用 192.168.1.0 网络地址,用前三个字节来指定 C 类 192.168.1 网络,而用一个 0 来表示网络上所有可能的主机。
- 广 播地址 广播地址是一个允许向给定子网中的所有主机而不是一台特定的网络主机同时发送网络数据的 IP 地址。一般标准 IP 网络的地址是 255.255.255.255,但这个广播地址不能用来为 Internet 网上的每台主机发送一个广播消息,因为路由器会阻止它。更适当的广播地址设置是匹配特定子网的。例如,在流行的私有 C 类 IP 网 192.168.1.0 中,广播地址应该设为 192.168.1.255。广播消息一般都是由网络协议产生的,如地址识别协议 (ARP) 和路由信息协议 (RIP)。
- 网关地址 网关地址是一个通过该地址可能会到达指定网络或网络主机的 IP 地址。如果一台网络主机希望与另一台网络主机通讯,而该机并不在同一网络中,而是要传输到另一个网络或主机上,如 Internet 主机。网关地址设置必须正确,否则您的系统将不能到达不在同一网络中的任何主机。
- 名 称服务器地址 名称服务器地址表示域名服务 (DNS) 系统的 IP 地址。该系统将网络主机名解析成 IP 地址。可以按顺序来指定三个不同优先级的名称服务器地址:主 名称服务器,次 名称服务器,和 第三 名称服务器。按顺序为您系统将网络主机名解析成相应的 IP 地址,你必须指定合法的名称服务器地址,该地址应该在您系统的 TCP/IP 配置中被授权使用。在许多情况下这些地址可以也应该被您的网络服务供应商提供,但也可以使用许多免费的、可供公众访问的名称服务器,如 IP 从 4.2.2.1 到 4.2.2.6 的 Level3 (Verizon) 服务器。
4.2.3. IP 路由
- IP 路由是在 TCP/IP 网络上为可能发送的网络数据指明或发现路径。路由使用一组路由表来指示网络数据包从源地址转发到目的地,经常是通过许多叫做路由器的网络节点做中转。IP 路由是 Internet 上路径发现的主要方式。IP 路由分为两种形式:静态路由 和 动态路由。 静 态路由包含向系统路由表中手工添加的 IP 路由,一般是通过 route 命令来向路由表手工添加的。静态路由与动态路由相比有许多优点,如在小网络中实施简单,有可预测性 (路由表总是事先算好,因此路由在每次使用时都相当一致),在其它路由器和网络链路处理上比动态路由协议开销小。然而,静态路由也有一些缺点。如静态路由 只限于小网络而且不能很好地进行调整。静态路由由于路由固定的特性,因此根本无法根据路由来适应网络中断和故障。 动 态路由有赖于从一个源到目的有多条可用 IP 路由的大型网络,利用特定的路由协议,如路由信息协议 (RIP),可以自动调整路由表以生成可能的动态路由。动态路由相对静态路由有几个优点,如拥有较大的伸缩性和能根据网络路由来适应网络中断和故障。另 外,几乎无须手工配置路由表,因为路由器可以相互学到其他已有并且可用的路由器。这一特性也消除了由于人为错误而在路由表中引入错误的可能。然而,动态路 由也并不完美,其表现出来的缺点如相当复杂以及由于路由器通讯所带来的额外的网络开销,并不能使最终用户由此获益,并却一直消耗着网络带宽。
4.2.4. TCP 和 UDP
- TCP 是一个基于连接的协议,提供纠错并通过 流量控制 来传输数据。流量控制决定什么时间一个数据流需要停止,例如在出现诸如 冲突 等问题时重发先前发送的数据包,以确保完整和准确的数据传输。TCP 常用于重要信息的交换,如数据库传输。 另 一方面,用户数据报协议 (UDP) 是一个 无连接 协议,很少用于重要数据的传输,因为缺乏流量控制或其他一些确保可靠数据传输的方法。UDP 常用在如音视频流这样的应用程序,由于它缺少纠错和流控,因此相对于 TCP 来说更快,而且丢失少量包通常也不会造成灾难性的后果。
4.2.5. ICMP
- Internet 控制消息协议是在Request For Comments (RFC) #792 中定义的,是对网际协议 (IP) 的一个扩充。支持的网络包包括控制、错误和信息的消息。ICMP 常被用在诸如判断一台网络主机或设备可用性的 ping 工具这样的网络应用程序。在网络主机和设备如路由器之间使用 ICMP 所返回的错误消息示例包括 Destination Unreachable 和 Time Exceeded。
4.2.6. 守护程序
- 守 护程序是特殊的系统应用程序,一般常驻在后台并等待来自其他应用程序请求其所提供的功能。许多守护程序都是网络中心;在 Ubuntu 系统后台执行的许多守护程序都可以提供网络的相关功能。这些网络守护程序包括 超文本传输协议守护程序 (httpd),用于提供网站服务器功能;Secure SHell 守护程序 (sshd),用于提供安全远程登录 shell 和文件传输功能;Internet Message Access Protocol 守护程序 (imapd),用于提供 E-Mail 服务。
防火墙配置
- Linux 内核包括 Netfilter 子系统,用来处理或决定网络传输头部进入或穿过你的服务器,目前所有的 Linux 防火墙都用该系统来做包过滤。
4.3.1. 防火墙介绍
- 内 核的包过滤系统如果没有一个用户态 (userspace) 界面来管理它的话对管理员来说几乎没有用。这正是 iptables 的目的。当一个包到达您的服务器,它从用户态 (userspace) 通过 iptables 传给 Netfilter 子系统,然后基于提供的规则去接受、操作或拒绝。因此,如果你能熟悉它的话,那么 iptables 就是您管理您防火墙所需的全部。
4.3.2. IP 伪装
- IP 伪装的目的是为了允许您网络上那些有着私有的、不可路由的 IP 地址的机器可以通过做伪装的机器访问 Internet。来自您私有网络并要访问 Internet 的传输必须是可以操作的,也就是说回复要可以被路由回来以送到发出请求的机器上。要做到这一点,内核必须修改每个包 源 IP 地址以便回复能被路由回它这里,而不是发出请求的私有 IP 地址,因为它们对于 Internet 来说是不存在的。Linux 使用 Connection Tracking (conntrack) 来保持那个连接是属于哪个机器的,并相应地对每个返回包重新做路由。发自您私有网络的流量就这样被伪装成源于您的网关机器。这一过程在 Microsoft 文档中被称为 Internet 连接共享。 这可以用单条 iptables 规则来完成,也许基于您网络配置来说会有一些小的差异:
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE 上述命令假设您的私有地址空间是192.168.0.0/16,您与 Internet 相连的设备是 ppp0。语法分解如下所示:
- -t nat -- 该规则将进入 nat 表
- -A POSTROUTING -- 该规则将被追加 (-A) 到 POSTROUTING 链
- -s 192.168.0.0/16 -- 该规则将被应用在源自指定地址空间的流量上
- -o ppp0 -- 该规则应用于计划通过指定网络设备的流量。
- -j MASQUERADE -- 匹配该规则的流量将如上所述 "跳转" (-j) 到 MASQUERADE (伪装) 目标。
在 过滤表 (缺省表,在那里有着大多数或全部包过滤指令) 中的每条链 (chain) 都有一个默认的 ACCEPT 策略,但如果您还在网关设备上设置防火墙,那么您也许还要设置 DROP 或 REJECT 策略,这时您被伪装过的流量还需要被 FORWARD 链 (chain) 中的规则允许才能正常工作: sudo iptables -A FORWARD -s 192.168.0.0/16 -o ppp0 -j ACCEPT sudo iptables -A FORWARD -d 192.168.0.0/16 -m state --state ESTABLISHED,RELATED -i ppp0 -j ACCEPT 上述命令将允许通过从您局域网到 Internet 的所有连接,这些连接所有的相关流量也都返回到发起它们的机器。
4.3.3. 工具
-
有很多工具可以帮助您构建一个完整的防火墙,而不需要 iptables 的专业知识。偏好图形界面的,Firestarter 非常流行也易于使用,fwbuilder 则非常强大而且其界面对于用过诸如 Checkpoint FireWall-1 商业防火墙工具的管理员来说相当熟悉。如果您偏好有着纯文本配置文档的命令行工具,Shorewall 是个非常强大的解决方案,可以帮您为任何网络配置一个高级防火墙。如果您的网络相对简单,或如果您没有网络,那么 ipkungfu 将给您一个无需配置就可以工作的防火墙,也允许您通过编辑简单友好的配置文件来轻松设置更高级的防火墙。另一个感兴趣的工具就是fireflier,被设 计成桌面防火墙应用程序。它由一个服务器 (fireflier-server) 和可选的 GUI 客户端 (GTK 或 QT) 组成,操作就象 Windows 中许多流行的交互式防火墙应用程序一样。
4.3.4. 日志
- 防 火墙日志主要是为了确认攻击、找出并解决您防火墙规则的问题以及注意您网络中不正常的活动。您必须在您防火墙中包含这些日志规则以便生成相应日志,虽然, 日志规则必须优先于任何可应用的最终规则 (那些决定其目的包命运的规则,如ACCEPT、DROP 或 REJECT) 。
sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j LOG --log-prefix "NEW_HTTP_CONN: " 一个从本机发起的对 80 端口的请求将会在 dmesg 中生成一条日志,如下所示: [4304885.870000] NEW_HTTP_CONN: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=58288 DF PROTO=TCP SPT=53981 DPT=80 WINDOW=32767 RES=0x00 SYN URGP=0 上 面的日志也会出现在/var/log/messages、/var/log/syslog 和 /var/log/kern.log 中。这一过程可以通过适当编辑 /etc/syslog.conf 或安装配置 ulogd 并用 ULOG 代替 LOG 来进行改变。ulogd 守护程序是一种用户态服务器可以监听来自内核的防火墙日志指令,并且能够将其写到任何您希望的文件中,甚至是 PostgreSQL 或 MySQL 数据库。使用诸如 fwanalog、fwlogwatch 或 lire 日志分析工具将会很轻松地弄懂您的防火墙日志。
OpenSSH 服务器
4.4.1. 介绍
- Ubuntu 服务器指南的这部分内容介绍一个强大的远程控制网络计算机和在它们之间传输数据的工具集 OpenSSH。您也可以学到一些 OpenSSH 服务器应用程序的配置以及如何在您 Ubuntu 系统修改它们。 OpenSSH 是Secure Shell (SSH) 协议工具集中的一个自由可用的版本,用以远程控制一台计算机或在计算机之间传输文件。完成这些功能的传统工具,如 telnet 或 rcp 等,是不安全的,它们在使用时用明文来传输用户的密码。OpenSSH 提供一个服务器守护程序和客户端工具来保障安全、加密的远程控制和文件传输操作,以有效地取代传统的工具。 OpenSSH 服务器组组件 sshd 持续监听来自任何客户端工具的连接请求。当一个连接请求发生时,sshd 根据客户端连接的类型来设置当前连接。例如,如果远程计算机是通过 ssh 客户端应用程序来连接的话,OpenSSH 服务器将在认证之后设置一个远程控制会话。如果一个远程用户通过 scp 来连接 OpenSSH 服务器,OpenSSH 服务器将在认证之后开始服务器和客户机之间的安全文件拷贝。OpenSSH 可以支持多种认证模式,包括纯密码、公钥以及Kerberos 票据。
4.4.2. 安装
4.4.3. 配置
4.4.4. 引用
FTP 服务器
- 文 件传输协议 (FTP) 是一个 TCP 协议,用于在计算机之间上传和下载文件。FTP 工作在客户端/服务器模式下。服务器组件被称为 FTP 守护程序。它持续不断地临听来自远程客户端的 FTP 请求。当一个请求到达时,它管理登录和建立连接。在整个会话期间它执行 FTP 客户端发送来的任何命令。 可以通过两种方式来管理 FTP 服务器的访问:
在 匿名模式中,远程客户端可以使用 "anonymous" 或 "ftp" 缺省用户帐号并通过发送一个邮件地址做为密码来访问 FTP 服务器。在授权模式下一个用户必须拥有帐号和密码。用户所访问 FTP 服务器中目录和文件的权限是根据登录时所用帐号来定义的。一般来说,FTP 守护程序将隐藏在 FTP 服务器的根目录中并将其改到 FTP 家目录。这样就可以向远程传话隐藏文件系统的其他部分。
4.5.1. vsftpd - FTP 服务器安装
4.5.2. vsftpd - FTP 服务器配置
网络文件系统 (NFS)
- NFS 允许系统将其目录和文件共享给网络上的其他系统。通过 NFS,用户和应用程序可以访问远程系统上的文件,就象它们是本地文件一样。 NFS 最值得注意的优点有:
- 本地工作站可以使用更少的磁盘空间,因为常用数据可以被保存在一台机器上,并让网络上的其他机器可以访问它。
- 不需要为用户在每台网络机器上放一个用户目录。用户目录可以在 NFS 服务器上设置并使其在整个网络上可用。
- 存储设备如软盘、光驱及 USB 设备可以被网络上其它机器使用。这可能可以减少网络上移动设备的数量。
4.6.1. 安装
4.6.2. 配置
- 您可以配置要输出的目录,您可以在 /etc/exports 文件中添加该目录。例如:
/ubuntu *(ro,sync,no_root_squash) /home *(rw,sync,no_root_squash) 您可以用主机名来代替 *。尽量指定主机名以便使那些不想其访问的系统访问 NFS 挂载的资源。 您可以在终端提示符后运行以下命令来启动 NFS 服务器: sudo /etc/init.d/nfs-kernel-server start
4.6.3. NFS 客户端配置
- 使用 mount 命令来挂载其他机器共享的 NFS 目录。可以在终端提示符后输入以下类似的命令:
sudo mount example.hostname.com:/ubuntu /local/ubuntu 挂载点 /local/ubuntu 目录必须已经存在。而且在 /local/ubuntu 目录中没有文件或子目录。 另一个挂载其他机器的 NFS 共享的方式就是在 /etc/fstab 文件中添加一行。该行必须指明 NFS 服务器的主机名、服务器输出的目录名以及挂载 NFS 共享的本机目录。 以下是在 /etc/fstab 中的常用语法: example.hostname.com:/ubuntu /local/ubuntu nfs rsize=8192,wsize=8192,timeo=14,intr
4.6.4. 引用
动态主机配置协议 (DHCP)
- 动态主机配置协议 (DHCP) 是一种网络服务,相对于手工为每台网络主机配置,它使网络主机可能自动被服务器指定设置。被配置成 DHCP 客户端的计算机并不能控制其从 DHCP 服务器得到的设置,且该配置对于计算机用户来说是透明的。 由 DHCP 服务器提供给 DHCP 客户端最常用的设置包括:
然而,一个 DHCP 服务器也支持配置如下属性,如:
使 用 DHCP 的好处在于当网络发生改变如 DNS 服务器地址改变时,只需要在 DHCP 服务器中改变即可,所有网络主机将在其 DHCP 客户端下一次轮询 DHCP 服务器时被重新配置。另一个好处就是,它在将新计算机整合到网络时也更容易,因为不需要再检查 IP 地址的有效性。同时也减少 IP 地址的冲突。 一个 DHCP 服务器可以用两个模式来提供配置设置
- MAC 地址
- 该模式需要用 DHCP 去标明连接到网上的每块网卡唯一的硬件地址,然后在 DHCP 客户端每次使用该网络设备发送给 DHCP 服务器请求时提供给它一个固定的配置。
- 地址池
- 该 模式需要定义一个 IP 地址池 (有时也叫范围或作用域) ,以便 DHCP 客户端可以被动态提供它们的配置from which DHCP clients are supplied their configuration properties dynamically and on a fist come first serve basis。当一个 DHCP 客户端有段时间不再在网络上时,该配置将过期并释放回地址池以便为其他 DHCP 客户端使用。
ubuntu 提供 DHCP 服务器及其客户端。服务器叫 dhcpd (动态主机配置协议守护程序)。Ubuntu 提供的客户端叫 dhclient,应该安装在所有自动配置的计算机上。这两个程序很容易安装和配置,并可在系统引导时自动启用。
4.7.1. 安装
- 要安装 dhcpd,可以在终端提示符后输入以下命令:
sudo apt-get install dhcpd 您将看到下面的输出,说明接下来做什么: Please note that if you are installing the DHCP server for the first time you need to configure. Please stop (/etc/init.d/dhcp stop) the DHCP server daemon, edit /etc/dhcpd.conf to suit your needs and particular configuration, and restart the DHCP server daemon (/etc/init.d/dhcp start).
You also need to edit /etc/default/dhcp to specify the interfaces dhcpd should listen to. By default it listens to eth0.
NOTE: dhcpd's messages are being sent to syslog. Look there for diagnostics messages.
Starting DHCP server: dhcpd failed to start - check syslog for diagnostics.
4.7.2. 配置
- 安装结束后的错误消息可能会带来小小的困惑,不过下面几步将帮助您配置服务: 通常,您想做的是随机指定一个 IP 地址。这可以通过以下设置来实现:
# Sample /etc/dhcpd.conf # (add your comments here) default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-name "mydomain.org";
subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; range 192.168.1.150 192.168.1.200; }
这 将导致 DHCP 服务器从 192.168.1.10-192.168.1.100 或 192.168.1.150-192.168.1.200 范围中分配客户端一个 IP 地址。如果客户端没有要求一个特定的时间帧的话它将租用 600秒的 IP 地址。否则最大 (允许) 租用时间为 7200 秒。服务器也 "建议" 客户端使用 255.255.255.0 做为它的子网掩码,192.168.1.255 作为它的广播地址,192.168.1.254 作为路由器/网关,同时将 192.168.1.1 和 192.168.1.2 作为它的 DNS 服务器。 如果您需要为您的 Windows 客户机指定一个 WINS 服务器,您需要包含 netbios-name-servers 选项,如: option netbios-name-servers 192.168.1.1; Dhcpd 配置设置可以从 DHCP 快速指南中得到,该指南可以在 这里 找到。
4.7.3. 引用
域名解析服务 (DNS)
- 域 名解析服务 (DNS) 是一个 Internet 服务,相互映射 IP 地址和完全限定域名 (FQDN) 。通过这种方式,使用 DNS 将不再需要记住 IP 地址。运行 DNS 的计算机称为 名称服务器。Ubuntu 提供 BIND (伯克利 Internet 名称守护程序),一个在 GNU/Linux 上最常用的维护名称服务器的程序。
4.8.1. 安装
4.8.2. 配置
- DNS 配置文件被保存在 /etc/bind 目录中。主配置文件叫 /etc/bind/named.conf。缺省配置文件的内容如下所示:
// This is the primary configuration file for the BIND DNS server named. // // Please read /usr/share/doc/bind/README.Debian for information on the // structure of BIND configuration files in Debian for BIND versions 8.2.1 // and later, *BEFORE* you customize this configuration file. //
include "/etc/bind/named.conf.options";
// reduce log verbosity on issues outside our control logging { category lame-servers { null; }; category cname { null; }; };
// prime the server with knowledge of the root servers zone "." { type hint; file "/etc/bind/db.root"; };
// be authoritative for the localhost forward and reverse zones, and for // broadcast zones as per RFC 1912
zone "localhost" { type master; file "/etc/bind/db.local"; };
zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; };
zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; };
zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; };
// add local zone definitions here include "/etc/bind/named.conf.local"; include 行指定包含 DNS 选项的文件名。在选项文件中的directory 行告诉 DNS 在哪儿寻找文件。所有 BIND 用到的文件都与该目录相关。 名为 /etc/bind/db.root 的文件描述世界上的根名称服务器。这些服务器按时更新并不时被维护。 zone 部分定义一个主服务器,并将其保存在 file 标签所指定的文件中。每个 zone 文件包括 3 个资源记录 (RRs):一个 SOA RR、一个 NS RR 以及一个 PTR RR。SOA 是授权开始的缩写。"@" 符是一个特定的符号表示原点。NS 是名称服务器 RR。PTR 是域名指针。要开始 DNS 服务器,可以在终端提示符后运行以下命令: sudo /etc/init.d/bind start 详情您可以参考在参考部分所提及的文档。
4.8.3. 引用
CUPS - 打印服务器
- Ubuntu 打印及打印服务主要是 通用 UNIX 打印服务 (CUPS)。该打印系统是自由可用、可移植的打印层,正在成为绝大多数 GNU/Linux 发行版新的打印标准。
CUPS 管理打印作业和队列,并使用标准的 Internet 打印协议 (IPP) 提供网络打印,该协议提供最大范围的打印机支持,从点阵打印机到激光打印机以及位于两者之间的许多打印机。CUPS 也支持 PostScript Printer Description (PPD) 和网络打印机的自动检测,以及提供基于 Web 的简单配置和管理工具。
4.9.1. 安装
4.9.2. 配置
4.9.3. 引用
HTTPD - Apache2 Web 服务器
- Apache 是在 GNU/Linux 系统中最常用的 Web 服务器。Web 服务器为客户机所提交的网页请求服务。客户机一般通过网页浏览器如 Firefox、Opera 或 Mozilla 来请求和查看网页。 用 户输入统一资源定位器 (URL) 来指向一个 Web 服务器,并通过完全限定域名 (FQDN) 和路径来请求资源。例如,要查看 Ubuntu 网站 的主页,用户只需要输入 FQDN 即可。如果要请求关于 有偿技术支持 的特定信息,用户将在 FQDN 后输入路径。 用于传输网页的最常用协议就是超文本传输协议 (HTTP)。也支持诸如基于安全套接层的超文本传输协议 (HTTPS) 以及用于上传和下载文件的文件传输协议 (FTP) 等协议。 Apache Web 服务器常与 MySQL 数据库引擎、超文本处理器 (PHP) 脚本语言及其他流行的脚本语言如Python 和 Perl 组合在一起。这一组合被称为 LAMP (Linux, Apache, MySQL and Perl/Python/PHP) ,并形成一个强大健壮的开发基于 Web 应用程序的开发平台。
4.10.1. 安装
4.10.2. 配置
- Apache 可以在纯文本配置文件中通过 语句 来配置的。主配置文件叫 apache2.conf。此外,其外配置文件可以用 Include 语句来添加,也可以使用通配符来包含多个配置文件。任何语句都可能被放在这些配置文件的任何一个文件中。修改过的主配置文件只在 Apach2 启动或重启时才能被其识别。
服务器也查看包含 mime 文档类型的文件;该文件名通过 TypesConfig 设置,缺省情况下是mime.types。 缺省的 Apache2 配置文件是 /etc/apache2/apache2.conf。您可以编辑该文件以配置 Apache2 服务器。您可以配置端口号、文档根目录、模块、日志文件及虚拟主机等。
4.10.2.1. 基本设置
- 本部分内容说明 Apache2 服务器基本的配置参数。详情请参阅 Apache2 文档
-
Apache2 提供了一个友好虚拟主机的缺省配置。它配置成单个缺省虚拟主机 (使用 VirtualHost 语句) 。如果您有单个站点,可以修改或直接使用它。如果您有多个站点的话,可以将其作为其它虚拟主机的模板。如果对其不加理会,该缺省虚拟主机将会作为您的缺省网站提供服务,或者如果网站用户所输入的 URL 并没有匹配您任何所定义站点的 ServerName 语句时,将看到该虚拟主机内容。要修改缺省虚拟主机,可以编辑文件 /etc/apache2/sites-available/default。如果您希望配置一个新的虚拟主机或站点,在同一目录中将拷贝该文件并将新文 件重命名为您所想要的文件名,如sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mynewsite。编辑新文件并用下面的所描述的语句来配置新的站点:
-
ServerAdmin 语句指定服务器管理员的邮件地址,缺省值是 webmaster@localhost。应该改成您的邮件地址 (如果您是服务器管理员的话)。如果您的网站有问题,Apache2 将显示包含该邮件地址的错误信息以便报告该问题。在 /etc/apache2/sites-available 目录中您网站的配置文件里可以找到该语句。
- Listen 语句指定端口以及可选的 IP 地址,Apache2 将在其上监听。如果 IP 地址没有被指定,Apache2 将监听所有指向其所运行机器上的 IP 地址。Listen 语句的缺省值是 80。把其改成 127.0.0.1:80 将使 Apache2 只在您的环回接口上临听以致于它相对于 Internet 不可用。也可改变其监听端口如81,或保持原样以便正常操作。该语句可以在它自己的文件 /etc/apache2/ports.conf 中发现并修改。
-
The ServerName 语句是可选的,它指明您站点要应答什么 FQDN。缺省虚拟主机没有指定 ServName,因为它要应答没有匹配其它虚拟主机 ServerName 语句的所有请求。如果您只获得 ubunturocks.com 域名并希望在您的 Ubuntu 服务器上只作它的主机,那么在您虚拟主机配置文件中的 ServerName 语句值应该是 ubunturocks.com。在您先前创建的新虚拟主机文件 (/etc/apache2/sites-available/mynewsite) 中添加该语句。
-
DocumentRoot 语句指定 Apache 将到哪儿去寻找站点文件,缺省值为 /var/www。没有站点配置在那里,但如果您反注释在 /etc/apache2/apache2.conf 中的 RedirectMatch 语句,请求将被重定向到 /var/www/apache2-default,那里是缺省的 Apache2 站点。在您站点的虚拟主机文件中改变该值,记住在必要时可以创建相应的目录! /etc/apache2/sites-available 目录并 不会 被 Apache2 解析。在 /etc/apache2/sites-enabled 的软链接指向 "可用的" 站点。使用 a2ensite (Apache2 启用站点) 工具可以创建这些软链接,如:sudo a2ensite mynewsite 这里您站点的配置文件是 /etc/apache2/sites-available/mynewsite。同样,a2dissite 工具将用来禁用站点。
4.10.2.2. 缺省设置
这部分内容说明 Apache2 服务器缺省设置的配置。举个例子,如果您添加一个虚拟主机,您为该虚拟主机配置的设置将优先于缺省虚拟主机。如果在该虚拟主机的设置中有个语句没有定义,那么将使用缺省值。
-
-
ErrorDocument 语句允许您为 Apache 指定一个用于特定错误事件的文件。例如,如果用户请求的资源不存在,那么将引发 404 错误,而在 Apache2 的缺省配置中,文件 /usr/share/apache2/error/HTTP_NOT_FOUND.html.var 将被显示。该文件并不在服务器的 DocumentRoot 中,但在 /etc/apache2/apache2.conf 中有个别名语句将到 /error 目录的请求重定向到 /usr/share/apache2/error/ 中。要查看缺省的 ErrorDocument 语句列表,可以使用命令:grep ErrorDocument /etc/apache2/apache2.conf
-
在缺省状态下,服务器将传输日志记录在文件 /var/log/apache2/access.log 中。您可以在您每个虚拟主机站点的配置文件上用 CustomLog 语句来改变它,或者忽略它以接受在 /etc/apache2/apache2.conf 中指定的缺省设置。您也可以通过 ErrorLog 语句来指定记录错误日志的文件,该文件缺省是 /var/log/apache2/error.log。这些都从传输日志中分离出来以便更好地在您的 Apache2 服务器中发现和解决问题。您也可以指定 LogLevel (缺省值是 "warn") 和 LogFormat (缺省值参见 /etc/apache2/apache2.conf)
- 一些选项是基于每目录而非每服务器的。Option 是这些语句中的一个。Directory 段是被放在类 XML 标记中,如:
4.10.2.3. 虚拟主机设置
4.10.2.4. 服务器设置
- 这部分内容说明如何配置基本的服务器设置。
LockFile - 当服务器编译时使用了 USE_FCNTL_SERIALIZED_ACCEPT 或 USE_FLOCK_SERIALIZED_ACCEPT 参数时,使用 LockFile 语句来设置 lockfile 的路径。它必须保存在本地磁盘上,它应该设置成缺省值,除非日志目录被定位在 NFS 共享上。如果是这种情况,缺省值应该被改为本地磁盘的位置并且其目录只对 root 用户可读。
PidFile - PidFile 语句设置服务器记录其进程 ID (pid) 的文件。该文件只对 root 用户可读。在大多数情况下,应该保留其缺省值。 User - 用户语句设置被服务器用于回应请求的用户 ID。该设置决定服务器的权限。一些该用户无法访问的文件也无法被您网站的访问者访问。用户缺省值是 www-data。 除非您的确知道您在做什么,否则请不要将 User 设为 root 用户。用 root 作为 User 的值将会在您的 Web 服务器中产生极大的安全漏洞。 Group 语句同 User 语句相似。Group 设置被服务器用于回应请求的用户组。缺省的组也是 www-data。
4.10.2.5. Apache 模块
4.10.3. HTTPS 配置
-
The mod_ssl 模块为 Apache2 服务器添加了一个重要的功能 - 通讯加密的能力。因此,当您的浏览器要用 SSL 加密通讯时,需要在浏览器导航栏中在输入的统一资源定位器 (URL) 的开始处使用 https:// 前缀。 mod_ssl 模块已经包含在 apache2-common 软件包中。如果您安装该软件包,您可以在终端提示符之后执行下列命令启用 mod_ssl 模块: sudo a2enmod ssl
4.10.3.1. 证书和安全
- 要设置您的安全服务器,使用公共钥创建一对公钥私钥对。大多数情况下,您发送您的证书请求 (包括您的公钥),您公司证明材料以及费用到一个证书颁发机构 (CA)。CA 检证证书请求及您的身份,然后将证书发回您的安全服务器。 还有种办法就是您可以创建您自己签署的证书。然而请注意自己签置的证书不应该用于生产环境。自已签署的证书不会被用户浏览器自动接受。浏览器将提示用户接受证书并创建一个安全的连接。 一旦您有一个自己签署的证书或一个您选择的 CA 签署的证书,您需要将它安装在您的安全服务器上。
4.10.3.2. 证书类型
- 您需要一个钥匙和一个证书来操作您的安全服务器,这意味着您可以生成自己签署的证书或购买 CA 签署的证书。由 CA 签署的证书为您的服务器提供两个重要的功能:
- 浏览器 (通常) 会自动地识别证书并且在不提示用户的情况下允许创建一个安全连接。
- 当一个 CA 生成一个签署过的证书,它为提供网页给浏览器的组织提供身份担保。
多数支持 SSL 的 Web 浏览器都有一个 CA 列表,它们的证书会被自动接受。如果一个浏览器遇到一个其授权 CA 并不在列表中的证书,浏览器将询问用户是否接受或拒绝连接。 您 可以为您的安全服务器生成一个自己签署的证书,但要知道自己签署的证书并不提供与 CA 签署的证书相同的功能。自己签署的证书不会被多数 Web 浏览器自动识别,而且自己签署的证书也不为任何提供网站的组织提供担保。CA 签署的证书为安全服务器提供所有这些重要的功能。从 CA 得到证书的过程相当容易。下面简要介绍一下:
- 创建一个私有和公共密钥对
- 基于公钥创建一个证书请求。证书请求包含您服务器及公司信息。
- 发送证书请求,并随之提供您的身份文档到一个 CA。我们不能告诉您选择哪个证书颁发机构。您可以基于您以往的经验或您朋友或同事的经验或纯粹基于经济因素来决定。
- 一旦您选定一家 CA,您需要根据他们所提供的规程来从他们那里获得证书。
- 当 CA 确定您确实如您所声称的那样时,他们将发给您一个数字证书。
- 在您的安全服务器上安装该证书,并开始进行安全事务处理
无论您是从一家 CA 那儿获得证书或是生成您自己签署的证书,第一步就是生成钥匙。
4.10.3.3. 生成一个证书签署请求 (CSR)
- 要生成证书签署请求 (CSR),您应该创建您自己的钥匙。您可以在终端提示符后运行以下命令以创建钥匙:
openssl genrsa -des3 -out server.key 1024 Generating RSA private key, 1024 bit long modulus .....................++++++ .................++++++ unable to write 'random state' e is 65537 (0x10001) Enter pass phrase for server.key: 您现在可以输入您的 passphrase。为了最大程度的安全,它至少应该包含八个字符。当指定 -des3 时最小长度为四个字符。它应该包含数字和/或标点符号,并且不应该是字典中的单词。也请记住您的 passphrase 是大小写敏感的。 再次输入 passphrase 核对。一旦您再次输入正确的话,服务器密钥就生成了并保存在 server.key 文件中。 您也可以不用 passphrase 来运行您的安全 Web 服务器。这样比较方便,因为在您启动您的安全 Web 服务器时您不需要每次都输入 passphrase。但它也是相当不安全的,钥匙的风险也同样意味着服务器的风险。 在任何情况下,您都可以选择不用 passphrase 来运行您的安全 Web 服务器,这可以通过在生成时不带 -des3 参数来实现或者通过在终端提示符后执行以下命令: openssl rsa -in server.key -out server.key.insecure 一旦您运行上述命令,不安全的钥匙将被保存在 server.key.insecure 文件中。您可以使用该文件来生成没有 passphrase 的 CSR。 要创建 CSR,可以在终端提示符后运行以下命令: openssl req -new -key server.key -out server.csr 它 将提示您输入 passphrase。如果您输入正确的 passphrase,它将提示您输入公司名、站点名、邮件ID等。一旦您输入了所有内容,您的 CSR 将被创建并被保存在 server.csr 文件中。您可以提交该 CSR 文件给一家 CA 去处理。CA 将使用该 CSR 并颁发证书。但是,您也可以使用该 CSR 生成自己签署的证书。
4.10.3.4. 创建一个自己签署的证书
4.10.3.5. 安装证书
- 您可以安装钥匙文件 server.key 和证书文件 server.crt 或由您的 CA 颁发的证书文件,在终端提示符后运行以下命令:
sudo cp server.crt /etc/ssl/certs sudo cp server.key /etc/ssl/private
SSLEngine on
SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire
SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key HTTPS 在 443 端口监听。您可以将下面一行添加到 /etc/apache2/ports.conf 文件中: Listen 443
4.10.3.6. 访问服务器
4.10.4. 引用
Squid - 代理服务器
- Squid 是一个全功能的 web 代理与缓存服务器应用程序,它为超文本传输协议 (HTTP)、文件传输协议 (FTP) 以及其他流行网络协议提供代理和缓存服务。Squid 可以实现安全套接层 (SSL) 请求的缓存和代理、域名服务器 (DNS) 的缓存以及进行传输缓存。Squid 也支持大量不同的缓存协议,如 Internet 缓存协议 (ICP)、超文本缓存协议 (HTCP)、缓存阵列路由协议 (CARP) 以及 Web 缓存协同协议 (WCCP)。 Squid 代理缓存服务器对于不同的代理和缓存服务器需求来说是一个极好的解决方案,它适用于从分支机构到企业级的网络,访问控制机制的粒度以及通过简单网络管理协 议 (SNMP) 对临界参数的监视。当选择计算机系统用于 Squid 代理或缓存服务器时,请确保您的系统配置大量的物理内存以便 Squid 可以使用内存进行缓存以提高性能。
4.11.1. 安装
4.11.2. 配置
4.11.3. 引用
版本控制系统
- 版本控制是管理改动信息的技术。它对于程序员而言一直是重要的工具,他们经常花时间对程序进行小改动之后又在第二天改回来。但版本控制软件的用途却远远超出了软件开发的界线。无论何处您可以发现人们使用计算机去管理那些经常变动的信息,那里都有使用版本控制的空间。
4.12.1. Subversion
- Subversion 是一个开源的版本控制系统。使用 Subversion,您可以记录源文件和文档的历史。它管理文件和目录。文件树被放入了中心库中。库更象是一个普通的文件服务器,除了它可以记住对文件和目录的每次改变。
4.12.1.1. 安装
4.12.1.2. 服务器配置
4.12.1.3. 访问方式
- Subversion 库可以通过许多不同的方式如通过在本地磁盘或不同的网络协议来访问 (checked out)。然而,库的位置经常是一个 URL。下表描述了不同的URL模式如何映射相应的访问方式。 表 4-1 访问方式
|
模式 |
访问方式 |
|
|
直接访问库 (在本地磁盘) |
|
|
通过 WebDAV 协议访问带有 Subversion 的 Apache2 web 服务器。 |
|
|
|
|
svn:// |
通过自身协议访问 svnserve 服务 |
|
svn+ssh:// |
与 svn:// 一样,但使用 SSH 遂道 | 在本部分,我们将看到如何为所有这些访问方式来配置 Subversion。这里,我们只介绍基本用法。更多详细、高级用法请参阅svn 书
4.12.1.3.1. 直接访问库 (file://)
4.12.1.3.2. 通过 WebDAV 协议 (http://) 访问
- 要通过 WebDAV 协议访问 Subversion,您必须配置您的 Apache2 web 服务器。您必须在您的 /etc/apache2/apache2.conf 文件中添加下面一小段:
<Location /svn> DAV svn SVNPath /path/to/repos AuthType Basic AuthName "Your repository name" AuthUserFile /etc/subversion/passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location> 接下来,您必须创建 /etc/subversion/passwd 文件。该文件包含用户认证细节。要添加一个条目,如添加一个用户,您可以在终端提示符后运行下列命令: htpasswd2 /etc/subversion/passwd user_name 该命令将提示您输入密码。一旦您输入密码。该用户将被添加。现在您可以运行下列命令来访问库: svn co http://servername/svn |