Linux

Samba 不會重新載入使用者組成員

  • June 29, 2013

我正在執行一個簡單的 samba 伺服器設置,其中使用者連接到包含特定使用者組文件夾的共享。文件夾是chmod 2770,因此只有在正確組中的使用者才能在其中讀/寫。

問題是,如果我更改組成員身份(即從組中刪除使用者/將使用者添加到組;更改在客戶端和伺服器之間同步!) samba 不會自動為使用者重新載入組成員身份,因此他們仍然可以寫入組他們不再是等的成員。我要麼必須重新連接到共享,要麼重新啟動 samba 以應用更改。

有什麼方法可以防止組記憶體和/或啟用 samba 中的組成員身份重新載入?

我的 smb.conf:

[global]
interfaces = ethlan
bind interfaces only = yes
smb ports = 445
workgroup = WORKGROUP
security = user
passdb backend = tdbsam:/var/lib/mysamba/samba.tdb

disable netbios = yes
nt acl support = no
invalid users = root
read only = no
case sensitive = yes
load printers = no
unix extensions = yes

log file = /var/log/samba.log
log level = 1
syslog = 0

use sendfile = yes

[groups]
path = /home/groups
browseable = yes
force create mode = 0770
force directory mode = 2770
hide unreadable = yes

而不是重新啟動整個 Samba 服務,您應該能夠只向它發送信號 ,SIGHUP以強制它重新載入它的配置文件。

smbd(8)手冊頁

配置文件及其包含的任何文件如果發生更改,每分鐘都會自動重新載入。您可以通過向伺服器發送 SIGHUP 來強制重新載入。重新載入配置文件不會影響到任何已經建立的服務的連接。要麼使用者必須斷開與服務的連接,要麼 smbd 被殺死並重新啟動。

最後兩句話很重要:目前連接不受此影響。

您處理使用者連接的方式可能會有很大差異,具體取決於具體情況。

  • 如果他們正在積極使用他們的連接,告訴他們重新啟動電腦以使更改生效可能會更容易;這樣,如果他們在做某事,他們就可以在閒暇時去做。
  • 對於個人使用者,您可以終止他們的連接過程(SIGHUP可能有效,但我目前不確定);但是您可能希望他們保存和/或關閉他們可能在共享上打開的任何內容,因為他們的連接將被切斷。當他們再次訪問共享時,他們將使用新訪問生成新連接。您可以使用它smbstatus來查找有關目前連接的資訊。
  • 重新啟動 Samba。這是一種非常激進的方法,但在某些情況下可能需要。這將殺死所有目前連接,迫使它們建立新連接。
  • 等等吧。如果在特定時間不需要更改,您可以讓客戶端自行重新建立連接。

引用自:https://serverfault.com/questions/518406