Users

更改UID後沒有使用者名

  • December 8, 2020

$$ Ubuntu 16.04.7, ISPConfig, Jailkit $$ 我需要更改新創建的(入獄)使用者的 UID(通過 ISPConfig 的Add Shell User函式)以消除與同一虛擬主機上其他使用者的歧義。所以我確定下一個可用uid並執行usermod -u xxxx UserName

我檢查了使用者的主目錄,而不是使用者列中顯示的使用者名,而是uid顯示。起初我並沒有在意這個結果。

當我以新使用者身份登錄時,我發現雖然其他一切都在工作,但提示使用者名設置為I have no name!. 由於我不需要/不想更改使用者名(也沒有),我對這個結果感到驚訝。當我id為這個使用者執行時,我得到了(注意使用者名沒有顯示在他們的 uid 旁邊):

uid=5016 gid=5007(groupName) groups=5007(groupName)

使用者肯定在/etc/passwd文件中。

在到處搜尋之後,我沒有找到任何解決這個問題的方法。我怎樣才能解決這個問題?

您提到這是針對入獄使用者的。因此,您需要更改監獄內外的 uid/使用者名映射。

usermod處理了監獄外的主要內容,但要編輯裡面的內容,您必須使用普通編輯器(您不太可能usermod在監獄內擁有命令,所以您不能chroot usermod...)。該文件應{JailRoot}/etc/passwd{JailRoot}. UID 是第三個以冒號分隔的欄位。

作為完整性的最後一步,確保舊 UID ( {oldUID}) 擁有的所有文件都已轉換為新 UID ( {newUID})。顯然,如果您確定沒有此類文件,則可以跳過此步驟

find / -user {oldUID} -exec chown {newUID} {} +

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