
我對 Samba 和用戶名映射有一個非常奇怪的問題。映射檔案是這樣的:
username map = /etc/samba/users.map
/etc/samba/users.map 的內容:
master = johndoe user2 user3
regular = johndoe user5 user6
restricted = johndoe user8 user9
問題是 Samba 始終對應johndoe
到檔案中列出的最後一個本機使用者/etc/samba/users.map
。在上面的範例中,johndoe
將始終對應到restricted
,因此,如果我有一個僅允許的共享master
和另一個僅允許的共享restricted
,我將無法存取這兩個共享,儘管johndoe
在兩個條目中都列出了。
這是正常行為嗎?
答案1
正確的。這是設計使然。從文件:
地圖檔案是逐行解析的。每行左側應包含一個 UNIX 使用者名,然後是“=”,右側是使用者名稱清單。右側的使用者名稱清單可能包含 @group 形式的名稱,在這種情況下,它們將符合該群組中的任何 UNIX 使用者名稱。特殊客戶端名稱“*”是通配符,可匹配任何名稱。映射檔案的每行最長可達 1023 個字元。
透過取得提供的使用者名稱並將其與「=」符號右側的每個使用者名稱進行比較,在每一行處理該檔案。如果提供的名稱與右側的任何名稱匹配,則該名稱將替換為左側的名稱。然後處理繼續下一行。
因此,相同的使用者帳戶出現在多行中不會將它們包含在每個地圖中,而是包含在定義的最後一個地圖中。
如果目標是擁有“超級用戶”,那麼您可能需要查看特定股票列表或對應帳戶團體而不是用戶。