2009年8月1日 星期六

HP-UX 的 /etc/passwd File

 HP-UX 的 /etc/passwd 格式與 Linux 上的 /etc/passwd 格式一樣,只是有一點點不一樣的規定。

 /etc/passwd(r--r--r--) 格式如下:
root:fd903Lfd:0:3::/:/bin/sh
user1:ivKHI9bKE48:1001:1001:111-111:/home/user1:/usr/bin/sh
user2:ivKHI9bKE48:1002:1001:111-111:/home/user1:/usr/bin/sh
user3:ivKHI9bKE48:1003:1001:111-111:/home/user1:/usr/bin/sh
  ↑     ↑    ↑   ↑    ↑      ↑      ↑
Username:Passowrd:UID:GID:Comments:Home Directory:Shell


Username
==========
  • 此為登入帳號,第一個字母必須為英文,其餘可以是英文或數字。
  • 在 11i v1 及 11i v2 中,username 的長度最多為 8 個字元,假如使用者名稱輸入超過 8 個字元,也僅只取前 8 個字元作為 username。
  • 在 11i v3 中可支援長度最多為 255 個字元,但這個功能必須手動啟用,預設並沒有開啟。在啟用此功能前必須先將 pwgrd ( password hashing daemon) 服務暫時停用,然後執行 lugadmin ( long username groupname ) 指令,再來重新啟動 pwgrd 服務,此行為不影響已存在的使用者及正在執行的程序。
  • 此功能一旦開啟就無法關閉。
   # /sbin/init.d/pwgr stop
    pwgrd stopped

   # lugadmin -e
    Warning: Long user/group name once enabled cannot be disabled in future.
    Do you want to continue [yY]:y
    lugadmin: Note: System is enabled for long user/group name


   # /sbin/init.d/gwgr start
    pwgrd started


  • 要如何確認此功能已開啟,可執行 lugadmin -l,出現 64 就是使用 8 個字元長度,若顯示 256 就是使用 255 個字元長度。
   # lugadmin -l
    256
  • 當功能啟用後,某些指令,如 who、ll、ps 仍會顯示 8 個字元,例如執行 who,下列 username 原本為 ThisIsALongName。
   $ who    ThisIsA+        console        Jun 13 13:27
  • 此用此功能可能會對 Scripts 和 Application 產生一些未知的問題。
     
Password
=========
  • HP-UX 預設將己加密過的密碼存放在此欄位中,並未使用 shadow。
  • 密碼應該要 6 ~ 8 個字元,其中必須包含一個數字或特殊符號。
  • 當此欄位設為空值時,則無須密碼即可登入系統。
  • 設定為星號 ( * ) 時,則表示禁止互動模式。

User ID
=======
  • 每個使用者帳號都會有一組 User ID。
  • User ID 0 為 root,其餘 1-99 為部份系統所使用。
  • 當建立使用者帳號時,系統會自動分配一組 User ID
  • 在 HP-UX v10.20 之前僅支援 60,000 個 User ID,HP-UX v10.20 以後的版本支援 2,147,483,646 個 User ID。
  • 要確認你的系統所支援的最大 User ID 數,可檢查 /usr/include/sys/param.h 中的 MAXUID 參數。
  • 當有分享檔案給網路上的其他伺服器,若使用數字龐大的 User ID,可能會造成其他不支援龐大 User ID 的系統無法識別的問題。

Group ID========
  • 使用者主要群組 ID。
  • 在 /etc/group 檔案中可找到相對應的 Grup ID。

Comments
==========
  • 註解,允許增加額外資訊在此欄位中。

Home directory
===============
  • 每個使用者預設會有一個自己的資料夾目錄。
  • 若此欄位中的目錄不存在或錯誤,將會以根目錄 ( / ) 為家目錄。

Command=========
  • 使用者登入時,所需使用 Shell 的環境。
  • root 必須使用 /sbin/sh POSIX shell。
  • 非 root 則應該使用 /usr/bin/sh POSIX shell。
  • 如果此欄位未設定,預設是 /usr/bin/sh。

-------------------------------------------------------------------------
NOTE:        passwd 檔案的預設權限應為唯讀 ( r--r--r-- ) 且擁有者必須為 root。
-------------------------------------------------------------------------


編輯 /etc/passwd
=================
 可使用 vi 編輯此檔,但如果管理者用 vi 編輯此檔,同時又有使用者要變更密碼時,會發生使用者密碼變更成功,但當管理者存檔後,使用者的新密碼被蓋回舊密碼的問題,為了避免此問題發生,HP-UX 建議使用 vipw 這個指令來編輯 /etc/passwd。

 # vipw
 這個指令會將 /etc/passwd 這個檔案鎖定,避免再寫入,並複製一份 /etc/passwd 到 /etc/ptmp,假如使用者此時變更密碼,將會無法變更密碼。

 當離開 vipw 時,程式會自動幫你檢查內容是否正確,假如內容正確無誤,將會把 /etc/ptmp 複寫到 /etc/passwd,反之,將保留未變更的 /etc/passwd 檔。


檢查 /etc/passwd 檔
===============


 若要檢查 /etc/passwd 檔的內容是否有問題,可使用 /usr/sbin/pwck 指令來測試。

 # pwck
  [/etc/passwd]        user1:fnmkei.KDHio:307:307:student:/home/user1
          Too many/few fields

沒有留言:

張貼留言