Samba共有フォルダのSetgidの問題

Samba共有フォルダのSetgidの問題

共有ディレクトリを持つファイルサーバーを設定しています。内部には、すべてのユーザーが読み取ることができるユーザー固有のフォルダーと、すべてのユーザーが読み書きできる共有ディレクトリがあります。ユーザー固有のフォルダは非常に簡単です。しかし、共有フォルダにはいくつかの問題があります。 GIDフォルダを作成する標準的な手順に従いました。

# chown root shared
# chmod -R ug+rwX shared
# chgrp -R users shared
# find shared -type d -exec chmod g+s "{}" \;
# find shared -type d -exec setfacl -m "default:group::rwx" "{}" \;

すべてのユーザーが「users」グループにいることを確認したら、コンソール、ssh、rsyncなどを介して直接ログインすると完全に機能します。しかし、サンバにはいくつかの問題があります。

デフォルトのSamba設定では、SGIDビットとGIDが伝播されますが、新しいファイルとフォルダにはグループ書き込みビットが設定されていません。これはACLが無視されるためと思われます。 ~によるとSamba は POSIX ACL を無視します。解決策はsmb.confに追加することですvfs objects = acl_xattr。設定してみると、グループ書き込み権限が正しく設定されていました。ただし、グループは親ディレクトリのグループではなくユーザーのホームグループに設定されるため、GID ビットの設定目的は無効になります。リンク(、および)に記載されている他のsmb.confを調整しようとしましたが、map acl inherit = yes効果はありませんでしたstore dos attributes = yesinherit acls = yesこれを行う正しい方法は何ですか?

ベストアンサー1

新しいファイルとフォルダのグループ、ユーザー、および権限を設定するには、サーバーで次の設定を使用します(smb.conf)。

[shared-folder]
   writeable = yes
   force user  = "user"
   force group = "users"
   create mask = 0664
   force create mode = 0664
   directory mask = 0775
   force directory mode = 0755

別の共有フォルダを使用すると、この方法でパブリックフォルダを処理できます。

メモ:説明で説明したように、この設定はACLと互換性がない可能性があります。 UNIX権限にのみ依存している場合にのみこれを実行することをお勧めします。

おすすめ記事