Linux
Samba 不會重新載入使用者組成員
我正在執行一個簡單的 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
以強制它重新載入它的配置文件。配置文件及其包含的任何文件如果發生更改,每分鐘都會自動重新載入。您可以通過向伺服器發送 SIGHUP 來強制重新載入。重新載入配置文件不會影響到任何已經建立的服務的連接。要麼使用者必須斷開與服務的連接,要麼 smbd 被殺死並重新啟動。
最後兩句話很重要:目前連接不受此影響。
您處理使用者連接的方式可能會有很大差異,具體取決於具體情況。
- 如果他們正在積極使用他們的連接,告訴他們重新啟動電腦以使更改生效可能會更容易;這樣,如果他們在做某事,他們就可以在閒暇時去做。
- 對於個人使用者,您可以終止他們的連接過程(
SIGHUP
可能有效,但我目前不確定);但是您可能希望他們保存和/或關閉他們可能在共享上打開的任何內容,因為他們的連接將被切斷。當他們再次訪問共享時,他們將使用新訪問生成新連接。您可以使用它smbstatus
來查找有關目前連接的資訊。- 重新啟動 Samba。這是一種非常激進的方法,但在某些情況下可能需要。這將殺死所有目前連接,迫使它們建立新連接。
- 等等吧。如果在特定時間不需要更改,您可以讓客戶端自行重新建立連接。