OpenBSD:檢查 /etc 下的哪些文件與原始基本系統相比發生了變化
我正計劃通過安裝最新的 OpenBSD 快照來設置一個新的個人 OpenBSD-current 系統,並且我希望它在對文件進行的本地更改方面看起來或多或少類似於我現有的 OpenBSD-current 系統在
/etc
沒有實際將目錄複製/etc
到新系統的情況下(它還包含新系統不應該使用的配置,以及其他應該不同的東西)。將我的舊設置與原始系統進行比較的最簡單方法是什麼,以便我可以手動完成並設置新機器?我想在安裝新的 OpenBSD 系統後編譯我需要配置的單個基本系統服務等的列表,作為一種不會意外遺漏的方法,例如為 root 設置郵件別名。
將我的(舊)系統升級到最新快照後,原始層次結構(以及 and 下的其他變數文件)的副本
/etc
可在. 還有一個單獨的存檔,稱為保存基本系統的預設 X11 配置。請注意,它不包含不打算修改的文件,例如or ,並且它不包含在沒有預設配置文件的情況下安裝的配置文件(但可能有一個用於本地調整預設值的文件),例如./root``/var``/var/sysmerge/etc.tgz``/var/sysmerge/xetc.tgz``etc.tgz``/etc/services``/etc/daily``/etc/doas.conf
要查看我在舊系統上修改了哪些文件,我可以將這些檔案提取到某個目錄並簡單地執行
diff
./var/sysmerge
由於目錄受到保護,因此必須以 root 身份進行提取。mkdir /tmp/tmpdir doas tar -xz -f /var/sysmerge/etc.tgz -C /tmp/tmpdir doas tar -xz -f /var/sysmerge/xetc.tgz -C /tmp/tmpdir
diff
通過首先刪除屬於不再安裝的軟體包的舊的未使用配置文件,可以更輕鬆地查看。這些可以通過使用sysclean
埠中的工具找到。該工具還可以辨識庫的舊版本和未使用版本,並且在任何系統升級或升級埠後執行它可能是一個好主意。
diff
為文件生成一個/etc
:doas diff -ru /tmp/tmpdir/etc /etc
這產生了
diff
我可能感興趣的文件的遞歸統一。在我的私人系統上,這足以讓我在以後配置我的新機器時提示我需要設置什麼。例如,我忘記了我在
/etc/ssh/sshd_config
文件中禁用了 root 登錄和密碼身份驗證,並且我在某個時候已經設置了一個額外的使用者進行測試(!)。完成後,我刪除解壓縮的檔案:
doas rm -rf /tmp/tmpdir