
Centos 7 サーバーで、Windows ユーザーがディレクトリに保存するファイルに権限を強制するために、create mask = 770
を追加しました。次に、コマンド ラインから次のように入力しました。smb.conf
# systemctl restart smb.service
# systemctl restart nmb.service
...しかし、ファイルは適切な権限で保存されませんでした。再起動後には正しく保存されました。では、再起動時に何が起こったのでしょうか? おそらく、コマンドラインから実行できたはずです。
smb.conf のセクションは次のとおりです。
[image-storage]
comment = archived image location
path = /our/samba/path/to/image_storage
valid users = @NameOfOurGroup
create mask = 770
browsable = yes
writable = yes
guest ok = no
force user = imagestore
答え1
サービスだけを再起動すると、再起動よりも改善されるようです。さらに良いのは、Samba を含む多くの Linux サービスに付属する構成の再読み込みを利用することです。この機能は、多くの場合、SIGHUP 信号または制御プログラムを介してアクセスされます。
使用smbコントロール(マニュアルページ) を使用すると、ダウンタイムを最小限に抑え、すでに共有を使用しているサービスへの影響を最小限に抑えながら構成を再ロードできます。つまり、次のコマンドを実行するだけです。
smbcontrol smbd reload-config
答え2
サービス名が間違っています。次を試してください:
# systemctl restart smb.service
# systemctl restart nmb.service
答え3
Samba は接続されたユーザーごとに子プロセスを作成します。マニュアルによると、親プロセスは構成ファイルを監視し、変更があった場合は自動的に再読み込みします。そのため、何もしなくても変更はほぼ瞬時に反映されますが、変更は現在の一連の子プロセスには伝播されません。
共有をマウントする新しいユーザーには、変更が表示されます。
ご覧になりたい場合は
- Windows マシンからすべての samba 共有をアンマウントします。最後の共有がアンマウントされると、samba サーバー上の子プロセスは終了します。ドライブをマウントすると、新しい設定で新しい子プロセスが作成されます。
- または、Samba 子プロセスを強制終了します。
答え4
この答えは私にとって断然最高のものでした: この回答を使用する前に、接続中のユーザーをキックするため、必ずsmbサービスを再起動する必要があります。smbcontrol smbd リロード設定新しい共有を再ロードしたり、構成を更新したりしたいだけの場合。 – PrestonDocks 2022年1月8日 0:52