Sambaが「root」を所有者としてすべての新しいファイル/ディレクトリを生成するのはなぜですか?

Sambaが「root」を所有者としてすべての新しいファイル/ディレクトリを生成するのはなぜですか?

新しいSambaインスタンスを作成しましたが、うまくいきましたが、新しいファイルをSamba共有にコピーした場合はowner:groupas root:myuser。 Linux自体で生成されたすべてのファイルは、myuser:myuserなぜSambaをroot所有者に設定するのですか?force userとオプションを知っていますが、設定されたforce groupすべてのSamba共有にグローバルに適用されるように見えるため、使用したくありません。 2人の他のユーザーに対して2つの共有を設定した場合は、そのユーザーを所有者に設定し、グループファイルを作成し、rootコンテンツの所有者またはグループではないはずです。

関連事項はsmb.conf次のとおりです。

[global]
# Make Samba follow symlinks
follow symlinks = yes
wide links = yes
unix extensions = no

# Custom shares
[myuserhome]
path=/home/myuser
browseable=yes
writeable=yes
create mask = 0664
directory mask = 0755
valid users = myuser
admin users = myuser

答え1

タイトルの質問に対する答えは次のとおりです。なぜならあなたがそう言ったからです。

man smb.conf(ハイライト内)から:

管理者ユーザー(S)

共有管理権限を付与されるユーザーのリスト。これは彼らが意味するすべてのファイル操作はスーパーユーザー(root)で行われます。

このリストのすべてのユーザーは、ファイルの権限に関係なく、共有で必要なすべての操作を実行できるため、このオプションを非常に慎重に使用する必要があります。

ディレクトリ権限を正しく設定し、共有ディレクトリのエントリをrootとして操作する習慣がない限り、admin usersSamba設定にこの行はまったく必要ありません。

SambaまたはLinuxで共有アクセス用のディレクトリを設定する場合は、最も簡単な方法はディレクトリのグループを設定し、最上位の共有ディレクトリrootの所有者、グループをそのグループに設定することです。必要に応じて(または別々に)権限とその設定を共有しますdrwxrws---drwxrwsr-xchmod 2770chmod 2775

これで、ディレクトリに対してsetgidビット(chmod g+s)が設定されました。これは、グループ所有権がこのディレクトリに作成されたすべての新しいファイルまたはサブディレクトリに継承され、setgidビット自体が新しいディレクトリに自動的に継承されることを意味します。次に、必要に応じてディレクトリをSambaと共有します。

重要なことはあなたが創造するということです。最上位レイヤのみルートで -ユーザーに残りのタスクを実行させる

共有ディレクトリの内容を直接維持する必要がある場合は、ディレクトリへの書き込み権限を付与するグループに一般ユーザーアカウントを追加し、「必要な操作を実行する」一般ユーザーアカウントで。それ以外の場合は、何かをする必要がない場合は、ルート中心の手をそのディレクトリから離してください。これは非常にまれな例外であることがわかります。

一般的な「グループ」原則(つまり、すべてのユーザーにUID = GIDのみが割り当てられたプライベートグループがあり、umaskがグループ書き込みアクセスを制限しない)に従う最新のLinuxシステムでは、他の作業を実行する必要はありません。すべてが動作します。大丈夫です。変更を必要とするすべての人は、グループの所有権によって付与された権限を使用して変更できます。

ディレクトリに1つもない場合粘り強いビットchmod +t)設定、ディレクトリへの書き込みアクセス権を持っている人は誰でも削除できます。その中のすべて、rootが所有するサブディレクトリを含みます。

関連情報