Centos

安裝 nfs-utils 後登錄不正確

  • September 1, 2019

我正在嘗試在無狀態的 RHEL6.5 KVM VM 中安裝 nfs-utils(以及它的所有依賴項)。/etc/sysconfig/readonly-root通過文件、我沒有實現的 Linux 魔術以及 VM 設置 GUI 中的“只讀”選項,將 VM配置為具有隻讀根。安裝是使用virt-customize -a image.img --run install_script.sh. 該腳本使用 here-document 來建構 .repo 文件(該文件轉到 6.5 的 CentOS 保險庫),然後我用來yum install -y nfs-utils進行實際安裝。我採用這種方法是因為它看起來比讓 VM 在讀/寫模式下啟動、安裝、清理然後關閉更容易、更乾淨、更不容易出錯。另外,我不知道如何讓它啟動讀/寫。

的輸出virt-customize顯示軟體包已成功安裝。唯一的失敗是由於拼寫錯誤而刪除了 .repo。

安裝完成後,我啟動了虛擬機並嘗試照常登錄。我的嘗試現在被拒絕了,因為Login incorrect.

我檢查virt-cat以確保使用者的登錄 shell 設置正確,並且加密密碼/etc/shadow看起來與原始密碼相同。

我最初的方法是創建一個包含所有依賴項和 nfs-utils 的 ISO 映像,並將其附加到 VM 並讓腳本處理安裝。那時也發生了同樣的問題。我將問題的根源縮小到安裝了一個 NFS 包:nfs-utils或者nfs-utils-lib(兩個之一,我不記得了)和rpcbind包。當安裝這些軟體包之一,然後啟動 VM 時,登錄會中斷。我猜這是現在發生的同樣的問題。

我用於VM 的映像是cp從原始 VM 的映像中生成的,因為這是一個測試,以確定如何正確進行安裝。

是的,我輸入的密碼正確。我嘗試更改使用者的密碼(通過libguestfs工具),但我仍然無法登錄,所以我不確定更改是否失敗(命令的返回碼表示成功)或相同的問題有效.

問題:

  1. 可以調試和修復登錄問題嗎?如果是這樣,怎麼做?
  2. 如何正確進行安裝,以免登錄失敗?顯然這種方式行不通。

這裡的核心問題是 SELinux。有多種方法可以將軟體安裝到 VM 中,但它們歸結為正在啟動或未啟動的 VM。後者是搞砸一切的原因,這就是我在文章中進行安裝的方式。

盡我所能,當虛擬機關閉並安裝軟體時,例如通過問題中的命令,SELinux 意識到發生了一些變化,它不知道安裝後啟動虛擬機時發生了什麼,並鎖定了一切. 允許 SELinux 重新標記解決了這個問題,但對我來說破壞了很多其他的東西。實際上,當系統離線時,無法編寫安裝腳本,因為您可能會遇到這種情況。請注意,此問題可能僅與 RHEL6.5 虛擬機及其 SELinux 版本有關(我們的版本鎖定為 RHEL6.5)。

為這樣的 VM 進行安裝的正確方法是將其引導到讀/寫模式,並通過使用所需 RPM 安裝 ISO 或使用包管理器來執行安裝。啟動時,SELinux 會知道安裝,一切都會很好。

引用自:https://unix.stackexchange.com/questions/522752