總覽 SYNOPSIS
smbpasswd
描述 DESCRIPTION
此文件是 Samba(7) 套件的一部分。
smbpasswd是Samba加密的口令文件。文件中包含了用戶名,UNIX用戶ID和SMB用戶口令(經過hash散列算法處理過),還有賬號標志信息及上次更改口令時間。samba已經改進了文件格式並和以前的格式有些不同之處。
文件格式 FILE FORMAT
Samba 2.2使用的smbpasswd文件格式和UNIX的passwd(5)文件非常類似。它是個ASCII文件,其中每行內容對應一個用戶。每個字段用冒號分隔。任何以#號開始的行將被忽略。對於每個用戶在smbpasswd文件中都包含以下的信息:
- name
-
用戶名,必須是標准UNIX口令文件中已經存在的用戶名。
- uid
-
UNIX的用戶標識。必須匹配標准UNIX口令文件中相應用戶的UID字段。如果不匹配Samba會拒絕確認用戶的整個描述項合法。
- Lanman Password Hash
-
此處是用戶口令的32位十六進制編碼的LANMAN散列表。LANMAN散列表是用DES加密過的用戶口令字串。這也是Windows 95/98使用的口令。注意這份口令編碼表在字典攻擊法下非常脆弱,並且如果兩個用戶使用了相同的口令的話,這個口令散列表將會相同(也就是這個口令沒有像UNIX口令那樣“加工”過)。如果用戶使用了空口令,這個部分起始將是“NO PASSWORD”的十六進制字串。而如果這些十六進制字串是32個“X”的話,那么這個用戶賬號就被
禁止了,用戶就不能登錄到samba服務器上了。
警告!!注意到由於SMB/CIFS驗證協議的“請求-響應”特性,任何了解口令散列表信息的人都可以偽裝成網絡中的其他用戶。因此,這些口令散列表信息都相當於只是“明文”一樣(plain text equivalents). root以外的任何用戶都不應該獲得這些數據. 為了保護這些口令,smbpasswd文件被存放到只有root用戶可以讀取和訪問的目錄中,而smbpasswd文件本身也必須設成只有root用戶可以讀/寫,而其它人無法訪問。
- NT Password Hash
-
指定Windows NT的用戶口令散列表,也是32位的十六進制編碼。NT的散列表用16位的用戶口令,little-endian UNICODE編碼建立,然后用MD4算法(互聯網草案 rfc1321)產生對應的散列表。
這種口令散列表比Lanman Password Hash更安全,因為它用更高質量的散列算法來維護口令和用戶信息。但是它仍然存在當兩個用戶使用相同口令時口令項相同的問題(沒有像UNIX口令那樣“加工”過)。
警告!!注意到由於SMB/CIFS驗證協議的“請求-響應”特性,任何了解口令散列表信息的人都可以偽裝成網絡中的其他用戶。因此,這些口令散列表信息都相當於只是“明文”一樣(plain text equivalents). root以外的任何用戶都不應該獲得這些數據. 為了保護這些口令,smbpasswd文件被存放到只有root用戶可以讀取和訪問的目錄中,而smbpasswd文件本身也必須設成只有root用戶可以讀/寫,而其它人無法訪問。
- Account Flags
-
賬號標志部分描述了用戶賬號的屬性。在Samba 2.2中這個字段是用‘[’和‘]’字符封閉的。它的長度總是13個字符(包含‘[’和‘]’字符), 內容可以是如下的任何字符。
U - 說明這是一個“用戶” 賬號,也就是原始用戶。在smbpasswd文件中只支持用戶和工作站信任賬號。
N - 說明這個賬號沒有口令(Lanman Password Hash和NT Password Hash字段會被忽略)。注意只有在smb.conf(5)配置文件中設定了 null passwords,才允許用戶不帶口令進行登錄。
D - 說明此賬號被禁止了,此用戶無法登錄SMB/CIFS。
W - 說明此賬號是個 “工作站信任” 賬號。這類賬號被用在把samba作為PDC時, NT工作站和服務器加入到域中的時候。
其它標志作為將來功能擴展所用。這個標志字段余下的空間用空格填充。
- Last Change Time
-
這個字段由賬號最后修改的時間組成。它以字符LCT(含義是“Last Change Time”)后跟UNIX以秒計的時間編碼數字(從epoch(公元1970年)開始計算)。
所有其余用冒號分隔的字段現在都將被忽略。