
我有一個正在運行的 Samba 檔案伺服器,我想知道如何建立具有不同權限的多個使用者帳戶。例如,目前我有一個使用者 smbusr,但是當我 ssh 到共享時,我可以讀取、寫入、執行,甚至導航出 samba 目錄並在實際電腦上執行操作。這很糟糕,因為我希望能夠給出我的 IP,以便朋友/家人可以使用該伺服器,但我不希望他們能夠做任何事情。
我想將使用者鎖定在 samba 共享目錄(以及所有子目錄)中。最終我想要幾個設定文件,例如(smbusr_R、smbusr_RW、smbguest_R、smbguest_RW)。
我還有與此相關的第二個問題,SSH 是從其他 UNIX 機器連接的最佳方法嗎? VPN 怎麼樣?或簡單地像這樣安裝:
mount -t ext3 -o user=username //ipaddr/share /mnt/mountpoint
上面那個掛載指令和VPN是一樣的嗎?這真讓我困惑。
感謝您的幫助,如果您需要查看任何文件或需要更多信息,請告訴我。
編輯:這是我的 samba 共享定義:
[SAMBA]
path = /samba
browseable = yes
guest ok = no
read list = smbusr_RO
write list = smbusr
EDIT2:這是我的整個 smb.conf 檔案:
答案1
是的,Samba 現在可以支援 ACL。它需要全域部分中的幾行以及每個共用允許和拒絕的 ACL 的清單。不過,可能需要對底層檔案系統權限進行一些調整才能支援它們,因為 ext 檔案系統預設不會執行 ACL。
這是一個教學:http://aisalen.wordpress.com/2007/08/10/acls-on-samba/
以及 SMB.conf 檔案的一般參考:http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html
編輯:嘗試像這樣更改您的共享配置。請注意,作業系統群組需要在前面有一個“@”,寫入清單並不意味著讀取權限,因此將兩個群組都放在讀取清單中。
將這些添加到全域變數中:
invalid users = root
valid users = @smbusers, @smbusers_RO
create mask = 02775
directory mask = 02770
[SAMBA]
comment = Debian File Server With Read Write
invalid users=nobody,nobody
valid users=@smbusr,@smbusr_RO
path = /samba
browseable = yes
guest ok = no
read list = @smbusr,@smbusr_RO
write list = @smbusr
writeable=yes
也執行“sudo testparm -s”來檢查設定檔的完整性。
在檔案系統權限方面,您可以chown -R 您的檔案由'root:smbusers' 擁有,這樣您的群組權限可以控制誰可以寫入,而您的其他權限可以控制誰可以讀取(smb 會確保讀取取權限僅授予“smbusers_RO”)。那麼我建議使用 SetGID,以便在共用中建立的所有新資料夾都歸 :smbusers 所有,並且所有 smbusers 都可以存取它們。
chown -R root:smbusers /samba
chmod -R 2775 /samba