奇怪的 Samba 用戶名映射

奇怪的 Samba 用戶名映射

我對 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 個字元。

透過取得提供的使用者名稱並將其與「=」符號右側的每個使​​用者名稱進行比較,在每一行處理該檔案。如果提供的名稱與右側的任何名稱匹配,則該名稱將替換為左側的名稱。然後處理繼續下一行。

因此,相同的使用者帳戶出現在多行中不會將它們包含在每個地圖中,而是包含在定義的最後一個地圖中。

如果目標是擁有“超級用戶”,那麼您可能需要查看特定股票列表或對應帳戶團體而不是用戶。

相關內容