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,排除已經索引的其他資料夾。