特定のユーザーに特定のSamba共有のみを表示する

特定のユーザーに特定のSamba共有のみを表示する

すべてのユーザーが特定のフォルダにアクセスできるようにSambaを設定したいと思います。たとえば、一部のフォルダにはサーバーにホームフォルダがあり、そのフォルダにはホームフォルダへのアクセス権が必要ですが、他のフォルダにはアクセスできないかアクセスできません。私は設定しました

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

その結果、一部のユーザーだけがこれらのフォルダにアクセスできますが、これは問題ではありません。しかし、私がuser3としてログインすると、彼はこのshare1を見ることができますが、アクセスできません。共有にアクセスできないユーザーがまったく表示されないように特定のユーザーにのみ表示されるようにするにはどうすればよいですか。

私はうまくいくいくつかの提案を見つけましbrowseable list = user1 user2たが、私はうまくいかず、それが間違っているとtestparm言います。browseable list

答え1

あなたが望むのは醜いハッキングを通してのみ可能です。

browseable = no共有をに設定して始めますinclude /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もちろん、それらのうちの1つだけが通常のファイルとして存在し、もう1つはシンボリックリンクにすることができます。

[sharename]
browseable = yes

%Uしかし、inの定義を参照してくださいman smb.conf

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

私が正しく理解した場合、これはsmbclientCIFS(またはユーザーがユーザー名を指定できる他のCIFSツール)を使用している人は誰でも、または-U user1オプション-U user2を使用してパスワードなしで共有を「参照」できることを意味します。

関連情報