Permissions

配置 Samba 權限

  • October 22, 2019

我想知道是否可以使文件可創建,但不可寫或可移動。這樣每個文件都是用r--r--r--權限創建的。

我目前的 smb.conf:

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = ubuntu
security = user
map to guest = bad user
dns proxy = no

#=== Share Definitions ===

[Anonymous]
path = /samba/anon
browsable =yes
writable = yes
guest ok = yes
read only = no
force user = nobody
create mask = 0444
force create mode = 0444
directory mask = 0444
force directory mode = 0444

我被 /samba/anon 權限設置為drw-rw-rw-. 如果我刪除w,使用者將無法再使用它創建文件 - 文件是可移動的。這個困境能解決嗎?

您可以嘗試以下方法(我現在無法驗證它是否有效,但應該可以):

[Anonymous]
path = /samba/anon
browsable =yes
writable = yes
guest ok = yes
read only = no
force user = nobody
create mask = 0644
force create mode = 0644
directory mask = 3775
force directory mode = 3775
inherit owner = yes

然後設置共享主目錄的權限(其中 sambaadm 是一些不同於nobody 的linux 使用者):

chown -R sambaadm:nogroup /samba/anon
find /samba/anon -type d | xargs chmod 3775
find /samba/anon -not -type d | xargs chmod 0644

這利用目錄上的粘性位使文件只能由所有者刪除。使用“繼承所有者”,您強制使用者始終是 sambaadm,因此無法刪除 nobody 使用者。還可以寫入僅允許 sambaadm 使用的文件,而 nobody 使用者可以使用其 nogroup 組成員身份寫入目錄。

引用自:https://unix.stackexchange.com/questions/547478