不過如果去觀察指令「useradd」的man_page,可以發現一個選項「-o」,透過這個選項可以將已分配的UID重複分配給新增的帳號使用。這就會變成,一個UID會對應到2個以上的帳號名稱。
不過此時又會衍生另一個問題,假設現在有2個帳號「test1」和「test2」,這2個帳號對應同一個UID「600」,如果我們以UID=600在系統上操作時,我們到底是用哪一個帳號身份呢?是test1還是test2??
當我們在Login時,輸入的名稱假設叫作「typein_name」,透過typein_name對照「/etc/passwd」的資料,取得UID、GID、shell和家目錄位置(所以登入完成後所在的家目錄要看typein_name),接著,登入的shell讀取啟動檔來設定變數USER,變數USER的設定是透過執行命令行「id -un」,該命令行會以現在的UID號碼來查詢檔案「/etc/passwd」以取得帳號名稱,所以此時同樣的UID如有不同的帳號名稱,則先找到的那一筆紀錄,會先被使用。
這也就是為什麼登入時,明明在login的判面是輸入「A帳號」,登入完成後,家目錄是在「A帳號的家目錄」可是提示字元的使用者帳號名稱卻是顯示「B帳號」(因為B帳號的紀錄在檔案/etc/passwd中,排得位置比A帳號上面)。
有空的話我再把lab驗測式的圖檔放上來
沒有留言 :
張貼留言