web-dev-qa-db-ja.com

特定のユーザーとしてマウントされるようにsamba共有を設定する方法は?

ユーザーが特定のsambaユーザーとして接続できるsamba共有を作成したい。私はユーザーを作成し、ヘンリーとしましょう。彼の家にストレージを作りたいと思います。

/etc/samba/smb.confにあります:

[myshare]
  path = /home/henry
  browsable = yes
  read only = no
  guest ok = no
  create mask = 0644

今私がsmbclientで接続するとき、すべてがうまくいきます。しかし、私はこの共有をCIFSとしてマウントしたいと思います。できます:

Sudo mount -t cifs //myserver/myshare /media/remote-share -o user=henry

しかし、/ media/remote-shareにファイルを作成しようとすると、権限が拒否されます:(

ゲストではなく特定のユーザーとして全員にアクセスを許可する場合は、どのように設定すればよいですか?

サーバーとクライアントはどちらもUbuntuマシンです。

8
amorfis

わかりました。質問をもう一度読んで、別の答えがあります。

/ etc/fstabにマウントするか、コマンドラインからSudoマウントを使用してマウントする場合、クライアントのローカルユーザーが共有を使用できるように、uidとgid、およびオプションでumaskも設定する必要があります(file_modeおよびdir_mode)。それ以外の場合は、デフォルトでrootが所有し、Wはrootのみが所有します。 RWとして明示的にマウントしても害はありません。

 Sudoマウント-t cifs // myserver/myshare/media/remote-share\
 -o rw、user = henry、uid = xxx、gid = yyy 

ここで、xxxとyyyはlocal(クライアントに対してローカル、つまり)、マウント時に共有を「所有」する必要があるユーザーとグループです。アクセスが必要なのがローカルユーザーが1人だけの場合、gidはおそらく問題ではありません。複数のローカルユーザーがアクセスを必要とする場合、gidを設定する必要があり、アクセスを必要とするすべてのローカルユーザーがそのgidのメンバーでなければなりません。

ネットワークの設定によっては、他にも設定が必要なオプションがあります(ドメインを指定する必要がある場合など)。詳細については、mount.cifs(8)のマンページを参照してください。

ところで、/ etc/fstabからマウントする場合は、認証情報ファイルに関するメモを参照してください。 fstabは誰でも読み取り可能であるため、パスワードを入力するのに適した場所ではありません。資格情報ファイルは、ルート、モード600で所有できます。

11
cas

mountコマンドはクライアント側にあり、サーバーが許可するものを制御しません。

特定のグループ(「有効なユーザー=グループ名」)の誰でも共有に接続できるようにサーバーに共有を設定し、接続を強制的にユーザーhenry(「強制ユーザー= henry」)にします。実際にログインしたユーザー名/パスワードに関係なく。

ubiantuでは、debianと同じように、henryはおそらく独自の専用グループ(debianではadduserでデフォルトで各ユーザーのグループを作成します)を持っていますが、そのグループの全員がhenryのすべてにアクセスできるようにする場合を除き、これを使用しないでください共有のファイルだけではなく、ファイル。

例えば"henry-share-g"と呼ばれるUNIX(またはLDAPまたはActive Directory)グループを作成し、共有へのアクセスを必要とするすべてのユーザーをそのグループに追加します。

次に、sambaで共有を構成して、ファイルがユーザーとグループによってRWXで作成され、ディレクトリがユーザーとグループおよびsetgidによってRWXで作成されるように権限を設定します(グループ 'henry-share-g'で新しいファイル/ディレクトリが作成されるようにします) )。

例えばこのようなもの:

 [myshare] 
パス= /home/henry
強制セキュリティモード= 0664 
強制ディレクトリセキュリティモード= 2775 
強制作成モード= 0664 
強制ディレクトリモード= 2775 
読み取り専用=いいえ
参照可能=はい
強制ユーザー= henry 
強制グループ= henry-share-g 
有効なユーザー= + henry-share-g 

この例では、ファイルとディレクトリを誰でも読み取り可能にし、ユーザーとグループごとにRWを作成します。それが必要ない場合は、ファイルには0660、ディレクトリには2770を使用してください。

ところで、上記のことは、教授の1人が研究グループの全員が使用できるようにグループ共有を望んでいるときはいつでも、職場で私のsambaサーバーで大体何をしているのですか。

唯一の真の違いは、既存のユーザーアカウントを使用しないことです。 ADで共有用の専用ユーザーと専用グループを作成します。これは、教授の個人ファイルと研究グループのファイルを分離する必要があるためです。また、ユーザーとグループの割り当てを設定します。これは、ユーザーの個人割り当てとは別のものです。つまり、既存の「henry」アカウントを使用するのではなく、「henry-share-u」のようなものを作成して使用します。

6
cas

これは、smb.confで選択したpassdbバックエンドによって異なります。

tdbsamバックエンド(sambaで推奨)を使用し、securityuserに設定した場合:

security = user
passdb backend = tdbsam

/usr/bin/smbpasswdを使用して、Sambaユーザーを追加できます。

  1. /usr/sbin/useraddを使用してUNIXユーザーを追加する
  2. smbpasswd -L -a <user>を使用してsambaユーザーを追加(-L:ローカルモード、-a:ユーザーを追加)
  3. /etc/samba/smbusersを使用してユーザーをマッピングします[構文:<unix-user> = <smb-user1> <smb-user2> <smb-userN>]

パスは、GNU/Lunuxディストリビューションで延期される場合があります。

1
Manuel Faux