
有時 yum 安裝更新時,它會給予一些訊息,例如:
warning: /etc/ssh/sshd_config created as /etc/ssh/sshd_config.rpmnew
我的想法是,對這些採取行動是明智的,因為也許偶爾會對配置文件進行一些調整,出於安全原因,執行這些調整很重要;然而,我想知道我是否過於謹慎,這只是一個理論上的擔憂,在實踐中並不是真正的問題。
我想我要問的是,任何人都知道在過去幾年中不合併到.rpmnew 文件中的任何情況都會產生一些值得注意的不良影響- 特別是安全方面,但其他角度(例如穩定性或配置的可取性)可能是值得一提。
答案1
它是非常對預設配置的變更很少會產生安全性或穩定性影響。然而,“非常罕見”並不是“從不”,檢查所有.rpmnew
文件並仔細檢查它們是否不包含重要更改,然後刪除它們是一種良好的系統衛生習慣。
作為仔細檢查,您還應該安排接收有關所有可用更新的安全通知和資訊 - 閱讀變更日誌和公告將使您很好地了解正在修復的問題的性質。
答案2
我建議在更新後對 *.rpmnew 和 *.rpmsave 檔案進行操作。這些文件的建立通常表明以下三件事之一:
您不小心(或沒有其他方法可以做到這一點)並修改了套件管理下的設定檔。通常,如果一個套件提供了一個配置片段的目錄(例如/etc/<package>.d/,就像PHP 的/etc/php.d/ 一樣),那麼您應該將本地更改放在那裡,而不會受到包提供配置更改。
打包者不小心,更改了規範文件中相應文件條目的定義(例如,他們忘記將特定文件標記為 %config 或更改了 %config() 巨集的修飾符。
發生了一些可疑的事情,並且有問題的配置文件被篡改了。
無論如何,如果更新產生 *.rpmnew 或 *.rpmsave,最好執行以下操作:
在舊文件和新文件之間進行比較
diff -uw old_file new_file
(-w 選項將忽略空白量的變化);如果沒有差異(除了空格)並且您正在研究 *.rpmnew 檔案的創建,請使用 . 將原始檔案替換為 *.rpmnew 檔案
mv config_file.rpmnew config_file
。這將確保保留包集元資料(例如時間戳記、檔案權限和可能的功能)如果存在差異,則根據套件提供的檔案重新調整您的變更(即,如果您正在使用*.rpmnew - 將*.rpmnew 檔案複製到臨時名稱下,並調整它以匹配原始設定檔中所需的更改;如果您使用 *.rpmsave - 將變更套用至套件提供的設定檔)。這將確保進一步的更新會更容易,並且如果引入了新的配置文件格式,您正在使用它
當您解決「衝突」時,請刪除對應的 *.rpmnew 或 *.rpmsave 文件,因為軟體包管理不會追蹤它們。
這將為您提供一個乾淨、良好的系統,並確保您了解配置檔案的最新變更。