# 安裝 安裝 ```bash sudo apt install samba ``` 檢查服務狀態 ```bash systemctl status smbd --no-pager -l ``` 檢查是否啟用(開機自啟動) ```bash systemctl is-enabled smbd # en ...
安裝
安裝
sudo apt install samba
檢查服務狀態
systemctl status smbd --no-pager -l
檢查是否啟用(開機自啟動)
systemctl is-enabled smbd
# enable it if inactive
systemctl enable smbd
配置
(可選)添加用戶
sudo usermod -aG sambashare [username]
設置密碼
sudo smbpasswd -a [username]
創建公開共用(可匿名訪問)
sudo vi /etc/samba/smb.conf
按以下格式創建內容
[public]
comment = public anonymous access
path = /data/
browsable =yes
create mask = 0660
directory mask = 0771
writable = yes
guest ok = yes
說明:
[public]
方括弧內為share後顯示的目錄名path = /data/
為用於share的本地路徑browsable =yes
是否可以瀏覽create mask = 0660
directory mask = 0771
writable = yes
是否可寫guest ok = yes
是否允許匿名訪問
開啟 SMB1
對於很多電視盒子, 運行安卓或CoreElEC, 只支持 SMB1, 連接預設配置的 Samba 服務會直接報 Timeout, 需要開啟 smbd 服務對 SMB1 的支持
編輯 /etc/samba/smb.conf, 在[global]
下添加
## Enable SMB1 ##
server min protocol = NT1
重啟 smbd 後, 電視盒就可以連接了.
配置項
Samba可以配置的屬性可以參考 https://www.samba.org/samba/docs/using_samba/ch08.html
create mask
八進位數, 每個數 3-bit 代表一組許可權[rwx], 整個mask 代表 smb 客戶端在創建文件時可以設置哪些bit.
預設是 0744, 對應[--- rwx r-- r--] 這代表著 unix 下的文件所有者可以 rwx [讀,寫,執行], 同組用戶和其它可以 r [讀]
對於下麵的例子, create mask 限制從 smb 創建文件/目錄時, 不管來自於什麼客戶端, 文件和目錄的最大許可權為 744
[data]
path = /home/samba/data
browseable = yes
guest ok = yes
writeable = yes
create mask = 744
If you need to change it for nonexecutable files, we recommend 0644, or rw-r--r--.
Keep in mind that the execute bits can be used by the server to map certain DOS file attributes, as described earlier. If you're altering the create mask, those bits have to be part of the create mask as well.
directory mask
與create mask 相同, 八進位數, 每個數 3-bit 代表一組許可權[rwx], 整個mask 代表 smb 客戶端在創建目錄時可以設置哪些bit.
預設是0744, 對應 [--- rwx r-- r--], 允許所有用戶讀, 但是只允許所有者自己瀏覽和修改. 建議改為 0750, [--- rwx r-x ---], 避免所有人可以訪問
下麵的例子中, 從客戶端創建的目錄, 最大許可權為 755
[data]
path = /home/samba/data
browseable = yes
guest ok = yes
writeable = yes
directory mask = 755
force create mode
這個配置項用於 當文件許可權發生變化時強制設置的許可權位. 常用於設置文件預設的組許可權. 這個配置也可以用於設置 DOS 屬性: archive (0100), system (0010), or hidden (0001).
TIP
有些windows應用保存文件時, 會創建一個帶.bak尾碼的文件, 當這些文件在samba共用目錄下時, 所有者不一定是當前用戶, 為了讓當前用戶還可以編輯修改, 可以設置 force create mode = 0660 , 這樣可以保證新文件也可以被同組用戶編輯.
force directory mode
這個配置項用於 當目錄許可權發生變化時強制設置的許可權位. 常用於設置組許可權, 預設為 0000.
force group
這個配置用於給所有連接上的客戶端, 只要客戶端成功通過驗證, 都會被指定一個固定的分組. 這個分組會體現在新創建的文件和目錄上.
force user
同樣的, 這個配置會給連接上的驗證通過的客戶端, 指定一個用戶, 體現在新創建的文件和目錄上.
關於 CIFS 和 SMB 的選擇
In this day and age, you should always use the acronym SMB. I know what you’re thinking – “but if they’re essentially the same thing, why should I always use SMB?”
Two reasons:
- The CIFS implementation of SMB is rarely used these days. Under the covers, most modern storage systems no longer use CIFS, they use SMB 2 or SMB 3. In the Windows world, SMB 2 has been the standard as of Windows Vista (2006) and SMB 3 is part of Windows 8 and Windows Server 2012.
- CIFS has a negative connotation amongst pedants. SMB 2 and SMB 3 are massive upgrades over the CIFS dialect, and storage architects who are near and dear to file sharing protocols don’t appreciate the misnomer. It’s kind of like calling an executive assistant a secretary.
參考
- https://www.varonis.com/blog/cifs-vs-smb
- https://linuxconfig.org/how-to-configure-samba-server-share-on-ubuntu-22-04-jammy-jellyfish-linux
- https://linux.how2shout.com/how-to-install-samba-on-ubuntu-22-04-lts-jammy-linux/
- Samba配置 https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Standalone_Server#Creating_a_Basic_guest_only_smb.conf_File