Product SiteDocumentation Site

8.9. 其他配置:时间同步、记录、共享近用…

本节列出的细目对希望精通 GNU/Linux 系统配置极有帮助。这里只列出简要的内容,详情仍需参阅文档。

8.9.1. 时区

初始安装时经由 tzdata 软件包配置时区。dpkg-reconfigure tzdata 命令以交互方式修改时区。其配置内容保存在 /etc/timezone 文件。在 /usr/share/zoneinfo 文件夹内映射的文件复制在 /etc/localtime 文件内;此文件包括使用日光节约时间的国家。
暂时变更时区,可使用 TZ 环境变量,它的优先次序在缺省的配置档之前:
$ date
Thu Feb 19 11:25:18 CET 2015
$ TZ="Pacific/Honolulu" date
Thu Feb 19 00:25:21 HST 2015

8.9.2. 时间同步

时间同步,在单机时代是多余,但在网络时代却很重要。用户无权修改日期与时间,所以需要精准的时间以免混乱。尤有甚者,网络上的电脑时间同步后,有助于安排社区工作者透过网络全球串联。受到攻击时,容易依序恢复原来的运作。由多部机器收集来的统计数据,必须有同步的时间,才能发挥作用。

8.9.2.1. 给工作站

工作经常需要重新开机 (虽然只是节省能源),开机时以 NTP 同步就够了。安装 ntpdate 软件包就可以。需要更换 NTP 服务器时,再修改 /etc/default/ntpdate 文件即可。

8.9.2.2. 供服务器

服务器很少重开机,系统时间必须绝对精准。为了永久维持时间的正确性,必须安装由 ntp 软件包提供的 NPT 服务器。缺省的配置方式系与 pool.ntp.org 同步,且回应本地网络的请求。可以编辑 /etc/ntp.conf 文件改变原来的配置,NTP 服务器依照该文件的内容而变更。若有多个服务器,最好有一个本地时间服务器与公共的服务器同步,并做为本地网络其他服务器的同步的依据。

8.9.3. 轮转日志档

日志档成长的速度很快,需要典藏它。最常的做法是循环典藏:只保留最新的 X 部分。logrotate 是负责循环的程序,根据 /etc/logrotate.conf 文件内的配置,把日志档保存在 /etc/logrotate.d/ 文件夹内。管理者可以修改该等文件,修改 Debian 缺省的循环政策。logrotate(1) 手册页面描述该配置可用的选项。可以在循环的过程中,增加典藏的文件数,或把文件移至指定的文件夹而不是删除它们。也可以电子邮件方式寄到别的地方。
logrotate 程序每日运行 cron 调度的要求 (详情见 第 9.7 节 “使用 cronatd运行计划任务”)。

8.9.4. 共享管理员权限

数个管理者共同在同个服务器工作。共用同个根用户密码不是好主意,匿名引发的误用很麻烦。解决方案是使用 sudo 程序,允许用户对特定命令拥有专门的权力。在多数情况下,sudo 允许受信任的用户以根的权限运行命令。用户只需运行 sudo command 并以个人的密码通过认证。
安装的时候,sudo 软件包把完整的 root 权限授权给 sudo Unix 群组。管理者必须使用 visudo 命令授予其他权利,该命令允许用户修改 /etc/sudoers 配置档 (当然,必须启用 vi 编辑器,或在 EDITOR 环境变量指定的编辑器)。添加一列 username ALL=(ALL) ALL 就能允许该用户以 root 的授权运行命令。
还有较复杂的配置,只允许特定用户运行部分命令。详情在 sudoers(5) 手册页面。

8.9.5. 挂载点清单

/etc/fstab 文件列出所有开机自动挂载或手动挂载的移动保存设备。每个挂载点由一列文本描述,包括若干空格区隔的字段:
  • 待挂载的设备:可以是本地分区 (硬盘、CD-ROM) 或远程的文件系统 (如 NFS)。
    此字段通常以文件系统的 ID 取代 (可以用 blkid device) 前置及 UUID=。此种方式可以应付添加或移除磁盘设备名称的情况,或者以其他顺序侦测到的磁盘。
  • 挂载点:这是把设备、远程系统,或分区挂载于本地文件系统的位置。
  • 类型:这个字段定义挂载设备使用的文件系统。ext4ext3vfatntfsbtrfsxfs 等。
    知名的文件系统清单在 mount(8) 手册页面。特殊值 swap 系供交换分区使用;特殊值 auto 告诉mount 程序自动侦测文件系统 (对读卡机与 USB 磁盘机特别有用,因为它们可能使用不同的文件系统);
  • 选项:依文件系统的不同,而有多种选项,详情见 mount 手册页面。最常用的是
    • rwro,表示该设备挂载后可以读/写,或只有读取的权限。
    • noauto 开机时关闭自动挂载。
    • nofail 允许在启动时处理设备,即使该设备不存在。确认启动时,该外置磁盘机可能未插入,因为 systemd 将确认所有挂载点在启动完成前必须自动挂载。可将此与 x-systemd.device-timeout=5s 并用,告诉 systemd 不必等 5 秒以上的时间,直接进入下个作业阶段 (见 systemd.mount(5))。
    • user 授权所有的用户均可挂载此文件系统 (若无此选项,则只有根用户才有此权限)。
    • defaults 表示缺省的选项群组为:rwsuiddevexecautonouserasync,使用了 defaults 之后,还可以用 nosuid 命令、nodev 及其他类似的命令,中止 suiddev 等作用。加入 user 选项可再启用它,因为 defaults 包括 nouser
  • 备份:此字段几乎都设为 0。当它是 1 时,告诉 dump 工具将备份有数据的分区。
  • 检查顺序:最后一个字段告知系统在启动时,或其他时机,检查文件系统的完整性。若设为 0,则不检查。根文件系统的值为 1,其他固定文件系统的值为 2

例 8.5. 范例 /etc/fstab 文件

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# / was on /dev/sda1 during installation
UUID=c964222e-6af1-4985-be04-19d7c764d0a7 / ext3 errors=remount-ro 0 1
# swap was on /dev/sda5 during installation
UUID=ee880013-0f63-4251-b5c6-b771f53bd90e none swap sw  0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto 0       0
/dev/fd0        /media/floppy   auto    rw,user,noauto  0       0
arrakis:/shared /shared         nfs     defaults        0       0
此例的最后一个条目对应于网络文件系统 (NFS):/shared/ 文件夹位于 arrakis 服务器挂载于本地机器的 /shared//etc/fstab 文件格式位于 fstab(5) 手册页面。

8.9.6. locateupdatedb

可以用 locate 命令找寻已知名称的文件。几乎即时送回结果,因为它搜索的数据库保存系统内所有文件的位置;此数据库由 updatedb 命令每日更新。locate 命令还有其他用途,Debian 选择 mlocate 做为其标准系统。
mlocate 很聪明,只送回该命令用户能够近用的文件,不会显示系统内其他符合条件的文件 (因为它以根权限运行 updatedb 命令)。为了提供额外的安全保护,管理者可以使用 PRUNEDPATHS 位于 /etc/updatedb.conf,排除已经索引的其他文件夹。