web-dev-qa-db-ja.com

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

各ユーザーが特定のフォルダーにアクセスできるようにSambaをセットアップしたいと思います。たとえば、サーバー上にホームフォルダーがあり、ホームフォルダーにアクセスできる必要があるものもあれば、アクセスできないものもあります。設定しました

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

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

browseable list = user1 user2を使用するためのいくつかの提案を見つけましたが、それは私には機能しません。testparmbrowseable listが正しくないと言っています。

1
fulaphex

あなたが望むことは、醜いハックによってのみ可能であるように思われます。

まず、共有を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に配置されます。もちろん、これらの必要性の1つだけが通常のファイルとして存在し、もう1つはシンボリックリンクにすることができます。

[sharename]
browseable = yes

ただし、%Uman smb.confの定義に注意してください。

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

これを正しく読んでいると、smbclient(またはユーザーがユーザー名を指定できる他のCIFSツール)を使用している人は誰でも、パスワードを必要とせずに-U user1または-U user2オプションで共有を「閲覧」できることを意味します。

1
cas