再起動せずに smb.conf ファイルへの変更を反映させるにはどうすればよいですか?

再起動せずに smb.conf ファイルへの変更を反映させるにはどうすればよいですか?

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

関連情報