傳統的 Unix 系統保留使用者帳號資料,包括單向加密的密碼,存放在一個稱做``/etc/passwd'' 的文字檔。 既然這個檔案會被很多工具 (像是 ``ls'') 用做顯示檔案的擁有者等,為了用來比對 user id # 和使用者名稱, 這個檔案必須是可讀的。 結果, 這造成安全上的風險。 另一個存放帳號的方法,我常使用的一個,是 shadow 密碼格式。和傳統方法一樣,這個方法以相容的方式存放 帳號資料於 /etc/passwd 檔案中。 然而,密碼的部分是一個“x” 符號 (換言之. 并非真正放在檔案中)。 另一個檔案,稱作 ``/etc/shadow'',存放加密過的密碼以及其他資料像是帳號及密碼的期限值等。 /etc/shadow 這個檔案只能由 root 讀取因此減少了風險。 有時一些 linux 發行版本會強迫安裝 Shadow 密碼套件 以便使用 shadow 格式, Red Hat 讓它變得很簡單。 要在兩者之間切換, 鍵入(以 root 身分): /usr/sbin/pwconv 轉換到 shadow 格式 /usr/sbin/pwunconv 轉換回傳統格式 使用 shadow 密碼時, ``/etc/passwd'' 檔內含帳號資料,看起來像這個樣子: smithj:x:561:561:Joe Smith:/home/smithj:/bin/bash 每一項目欄位都由“:”冒號所分隔,意義如下: 使用者名稱,最多 8 個符號,可以用大小寫,通常都是小寫 一個“x”在密碼欄。密碼存放在 ``/etc/shadow'' 檔中。 user id 數值。由``adduser'' script 所分配。 Unix 使用這個欄位,以及後面的群組欄以辨別檔案屬於 哪個使用者。 group id 數值。 Red Hat 使用 group id 作為很獨特的強化檔案安全的方法。通常 group id 會和 user id 相同。 使用者全名。我不大確定這個欄位的最大長度,但是盡量保持合理 (30個字元以下). 使用者的 home 目錄。 通常是 /home/username (例如. /home/smithj). 所有使用者個人檔案,網頁,回覆信 件等。會放在這里。 使用者的“shell 帳號”。常被設為``/bin/bash'' 提供取用 bash shell (我個人最喜歡的 shell)。 也許您不想提供給使用者 shell 帳號。您可以建立一個名為 ``/bin/sorrysh''的 script檔。例如顯示錯誤訊 息以及把使用者 log off,然後將這個 script 視為他們的預設 shell。 注意: 如果帳號需要提供“FTP”傳送更新網頁等。 shell 帳號要被設定為 ``/bin/bash'' -- 使用者的 home 目錄必須設定特別的權限以防 shell 登入。 查看第7章,網頁伺服器及 HTTP 快取代理主機管理 一節 有關的細節。 ``/etc/shadow'' 檔案內含使用者的密碼及帳號期限資料 ,看起來像這個樣子: smithj:Ep6mckrOLChF.:10063:0:99999:7::: 像密碼檔一樣,shadow 檔的每一個欄位也是由“:” 冒號所分開,意義如下: 使用者名稱,最多 8 個符號,可以用大小寫,通常都是小寫。直接對應 /etc/passwd 檔案中的使用者名稱。 密碼,加密過的 13 個字元。一個空格 (就是. ::) 表示登入時不需密碼 (不是個好主意),一個 ``*'' 項目 (就是 :*:) 指出帳號已經關閉。 密碼最後一次變更起所經過的日數 (從1970年一月一日起 ) 。 密碼經過幾天可以變更 (0 表示可以隨時變更) 密碼經過幾天必須變更 (99999 表示使用者可以保留他們的密碼很多很多年不變) 密碼過期之前幾天要警告使用者 (7 為一) 密碼過期幾天後帳號會被取消 從1970年一月一日起,帳號經過幾天會被取消 保留欄位 |
新聞熱點
疑難解答