Debian

僅向某些使用者顯示特定的 samba 共享

  • March 15, 2019

我想設置我的 samba,以便每個使用者都可以訪問特定文件夾。例如,其中一些在伺服器上有主文件夾,那些應該可以訪問他們的主文件夾,其他沒有,他們不應該。我已經設定

[share1]
   ...
   valid users = user1, user2
   #those users have access to this share
   ...

結果是只有部分使用者可以訪問這些文件夾,這很好。但是當我以 user3 身份登錄時,他看到了這個 share1,但無法訪問它。如何使其僅對某些使用者可見,以便無法訪問共享的使用者根本看不到它?

我找到了一些使用建議,browseable list = user1 user2但它對我不起作用,testparm說這browseable list是不正確的。

你想要的似乎只能通過一個醜陋的黑客來實現。

首先將共享設置為browseable = noinclude /etc/samba/sharename.%U.conf

[sharename]
path = /path/to/share
valid users = user1, user2 
public = no
browseable = no
writeable = yes
include = /etc/samba/sharename.%U.conf

然後將以下行放入文件/etc/samba/sharename.user1.conf/etc/samba/sharename.user2.conf. 當然,其中只有一個需要作為正常文件存在,另一個可以是符號連結。

[sharename]
browseable = yes

但是,請注意%Uin的定義man smb.conf

   %U
       session username (the username that the client wanted, not
       necessarily the same as the one they got).

如果我沒看錯,這意味著任何使用smbclient(或其他允許使用者指定使用者名的 CIFS 工具)的人都可以使用-U user1or-U user2選項“瀏覽”共享,而無需密碼。

引用自:https://unix.stackexchange.com/questions/245785