新しいSambaインスタンスを作成しましたが、うまくいきましたが、新しいファイルをSamba共有にコピーした場合はowner:group
as 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 users
Samba設定にこの行はまったく必要ありません。
SambaまたはLinuxで共有アクセス用のディレクトリを設定する場合は、最も簡単な方法はディレクトリのグループを設定し、最上位の共有ディレクトリroot
の所有者、グループをそのグループに設定することです。必要に応じて(または別々に)権限とその設定を共有しますdrwxrws---
。drwxrwsr-x
chmod 2770
chmod 2775
これで、ディレクトリに対してsetgidビット(chmod g+s
)が設定されました。これは、グループ所有権がこのディレクトリに作成されたすべての新しいファイルまたはサブディレクトリに継承され、setgidビット自体が新しいディレクトリに自動的に継承されることを意味します。次に、必要に応じてディレクトリをSambaと共有します。
重要なことはあなたが創造するということです。最上位レイヤのみルートで -ユーザーに残りのタスクを実行させる。
共有ディレクトリの内容を直接維持する必要がある場合は、ディレクトリへの書き込み権限を付与するグループに一般ユーザーアカウントを追加し、「必要な操作を実行する」一般ユーザーアカウントで。それ以外の場合は、何かをする必要がない場合は、ルート中心の手をそのディレクトリから離してください。これは非常にまれな例外であることがわかります。
一般的な「グループ」原則(つまり、すべてのユーザーにUID = GIDのみが割り当てられたプライベートグループがあり、umaskがグループ書き込みアクセスを制限しない)に従う最新のLinuxシステムでは、他の作業を実行する必要はありません。すべてが動作します。大丈夫です。変更を必要とするすべての人は、グループの所有権によって付与された権限を使用して変更できます。
ディレクトリに1つもない場合粘り強いビット(chmod +t
)設定、ディレクトリへの書き込みアクセス権を持っている人は誰でも削除できます。その中のすべて、rootが所有するサブディレクトリを含みます。