web-dev-qa-db-ja.com

サーバー上の共有ディレクトリのベストプラクティス(Samba Windows 10クライアント)

Windows 10クライアント用のSambaを使用したLinuxサーバー(Ubuntu)でのファイル共有のセットアップ。もともとこの環境は7年前にFedoraサーバーでセットアップされていましたが、ベストプラクティスのやり方でそれを行ったかどうかはわかりません。私の質問は次のとおりです:Linuxサーバー上の共有ディレクトリの場合、サブディレクトリとファイルを作成(所有)しているかどうかに関係なく、複数のユーザーがその共有に対する完全なアクセス許可を与えて、サブディレクトリとファイルを編集/削除するにはどうすればよいですか?たとえば、グループにアクセスする複数の異なるユーザーグループがあり、それらのディレクトリの完全なアクセス許可でディレクトリを共有します。私の古いサーバーでは、より良い方法が必要であると確信していることを回避しました.......各グループ共有への完全な許可を持つ汎用Linux/Sambaユーザーを作成し、Windowsクライアントのログインスクリプトを使用してそれらをマップしましたそれらが一般ユーザーであるかのようにその共有に追加されます(例:public_userはパブリック共有にアクセスします)。動作しますが、すべてが汎用ユーザーによって所有されているため、変更の追跡や新しく作成されたファイルやディレクトリに関する説明責任はありません。これが私の最初の質問です。どんな助けも大歓迎です。

3
gcruthers

Samba構成ファイルを編集します。

Sudo nano /etc/samba/smb.conf

これをファイルの最後に追加します。

[Public Directory]
comment = Contents are read/write by all.
path = /home/user/directory-to-be-shared
read only = no
guest ok = yes
create mask = 0666
force create mode = 0666
directory mask = 0777
force directory mode = 0777

次に、sambaを再起動します。

Sudo service smbd restart

ノート:

  1. 括弧内の文字列(上記の例ではPublic Directory)は、他のシステムから共有フォルダーにアクセスしたときにユーザーに表示されるものです。
  2. 他のシステムのユーザーがこのディレクトリ内に作成したファイルは、所有者、グループ、およびその他の読み取りおよび書き込み権限を持つnobody:nogroupによって所有されます。
  3. 他のシステムのユーザーがこのディレクトリに作成したディレクトリは、所有者、グループ、およびその他の読み取り、書き込み、およびディレクトリトラバーサルのアクセス権を持つnobody:nogroupによって所有されます。
  4. 構成ファイルのマスクとモードは、他のシステムのユーザーが作成したファイルとディレクトリに適用されます。サーバー上でユーザーとしてファイルを作成する場合、これらのマスクとモードは無視されます。または、別の言い方をすれば、サーバーのユーザーである場合、/home/user/directory-to-be-shared内に作成する各ファイルとディレクトリにそれぞれ666と777のアクセス許可があることを確認してください。
  5. サーバーでファイアウォールを有効にしている場合は、tcp用にポート445を開く必要があります。たとえば、ufw(複雑でないファイアウォール)を使用してファイアウォールを構成する場合:

    Sudo ufw allow in 445/tcp
    Sudo ufw reload
    Sudo ufw status verbose
    
2
TooManyPets

共有をすべてのユーザーがアクセスできるようにするか、クライアントユーザーのグループのみがアクセスできるようにするかは明確ではないため、これは後者のテンプレートです。

これは、システムのデフォルトのumaskが0002の場合にのみ説明どおりに機能するため、Ubuntu Desktop 17/18では機能しませんが、Xubuntuでは機能しますデスクトップおよびUbuntuサーバー。

このテンプレートでは、アクセスするすべてのユーザーが「users」グループのメンバーになる必要があります。共有ディレクトリおよび将来のサブディレクトリにsetgidビットを割り当てます。これにより、すべてのnewが追加され、その親フォルダのグループが継承されます。

Sudo mkdir /path
Sudo chown root:users /path
Sudo chmod 2775 /path

共有は次のようになります。

[UsersShare]
path = /path
valid users = @users
force group = users
read only = no
create mask = 0664
force directory mode = 2775

Bob-「users」グループのメンバーになったユーザーが、sambaユーザー名/パスワードでログインし、[UsersShare]共有にファイルを追加すると、owner = bob、group = users、mode = 664 files/2775になります。フォルダー。

サインインするユーザーグループのメンバーである他のすべてのクライアントユーザーは、bobが行ったすべての操作にフルアクセスできます。

ユーザーグループのメンバーでもあるファイルを追加または変更するローカルユーザー(サーバー自体のユーザー)はすべて同じ能力を持ち、新しく作成されたファイル/フォルダーは同じ664/2775モードを持ち、すべてがグループとして持ちます。 「ユーザー」。これに対する唯一の例外はルートです-Sudoを使用する場合のように-デフォルトのumaskは通常のユーザーとは異なり022であるため、ファイルは「users」グループを継承しますが、モードは644です。

全員がアクセスできる純粋なパブリック共有が本当に必要な場合は、「valid users = @users」を「guest ok = yes」に置き換えます。これをサーバー上でローカルに機能させるには、それらのユーザーを「ユーザー」グループに追加する必要があります。

0
Morbius1