# Linux系統如何使用Samba共享文件
## 一、Samba服務簡介
### 1.1 什么是Samba
Samba是一套開源的軟件套件,實現了SMB/CIFS(Server Message Block/Common Internet File System)協議,允許Linux/Unix系統與Windows系統之間進行文件共享和打印機共享。它由澳大利亞程序員Andrew Tridgell于1991年開發,現已成為跨平臺文件共享的標準解決方案。
### 1.2 Samba的核心功能
- 文件共享服務
- 打印機共享
- 用戶身份驗證
- 名稱解析服務
- 服務公告(瀏覽網絡)
### 1.3 Samba的應用場景
- 企業內網文件服務器
- 家庭多媒體共享中心
- 跨平臺開發環境
- 虛擬機與宿主機文件交換
## 二、Samba服務安裝與配置
### 2.1 安裝Samba服務
#### Ubuntu/Debian系統
```bash
sudo apt update
sudo apt install samba -y
sudo yum install samba -y
# 或
sudo dnf install samba -y
samba --version
/etc/samba/smb.conf
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
編輯smb.conf
文件:
sudo nano /etc/samba/smb.conf
典型全局配置示例:
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = LINUX-SERVER
security = user
map to guest = bad user
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
local master = yes
preferred master = yes
os level = 20
sudo mkdir -p /srv/samba/share
sudo chmod -R 0777 /srv/samba/share
[Share]
comment = Public Share
path = /srv/samba/share
browseable = yes
writable = yes
guest ok = yes
read only = no
create mask = 0777
directory mask = 0777
sudo useradd smbuser
sudo passwd smbuser
sudo smbpasswd -a smbuser
sudo pdbedit -L
sudo smbpasswd -x username
sudo smbpasswd -d username
[Private]
comment = Private Share
path = /srv/samba/private
valid users = smbuser
browseable = yes
writable = yes
create mask = 0700
directory mask = 0700
# 允許特定IP段
hosts allow = 192.168.1. 127.
# 拒絕特定IP
hosts deny = 192.168.1.100
[Department]
path = /srv/samba/dept
valid users = @dept-group
force group = dept-group
create mask = 0660
directory mask = 2770
[ShareWithTrash]
path = /srv/samba/share
vfs objects = recycle
recycle:repository = .recycle/%U
recycle:keeptree = yes
recycle:versions = yes
recycle:maxsize = 0
recycle:exclude = *.tmp,*.temp
# 啟動服務
sudo systemctl start smbd nmbd
# 開機自啟
sudo systemctl enable smbd nmbd
# 查看狀態
sudo systemctl status smbd
testparm
sudo ufw allow samba
# 或
sudo firewall-cmd --add-service=samba --permanent
sudo firewall-cmd --reload
sudo setsebool -P samba_enable_home_dirs on
sudo setsebool -P samba_export_all_rw on
sudo tail -f /var/log/samba/log.smbd
sudo apt install smbclient cifs-utils
smbclient //server/share -U username
sudo mount -t cifs //server/share /mnt/share -o username=user,password=pass
\\Linux服務器IP
smb://Linux服務器IP
定期更新:保持Samba服務最新版本
sudo apt upgrade samba
最小權限原則:僅授予必要權限
writable = no
read only = yes
禁用SMB1協議(存在嚴重漏洞):
[global]
min protocol = SMB2
啟用加密傳輸:
[global]
server signing = mandatory
smb encrypt = required
定期審計:
sudo auditctl -w /etc/samba/smb.conf -p wa -k samba_config
調整socket參數:
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
啟用大文件支持:
[global]
min receivefile size = 16384
use sendfile = yes
工作線程優化:
[global]
max smbd processes = 1000
目錄緩存設置:
[global]
directory name cache size = 10000
[Media]
path = /media/nas
valid users = @family
writable = yes
browseable = yes
veto oplock files = /*.m4v/*.mov/*.mp4/
veto files = /._*/.DS_Store/
delete veto files = yes
[DevProject]
path = /projects/current
valid users = @developers
writable = yes
create mask = 0775
directory mask = 0775
force group = developers
hide special files = yes
通過本文的詳細介紹,您應該已經掌握了在Linux系統上配置和使用Samba服務進行文件共享的全套方法。從基礎安裝到高級配置,從用戶管理到安全優化,Samba提供了企業級文件共享所需的所有功能。
/etc/samba/smb.conf
建議通過man smb.conf
查閱完整配置選項,并根據實際需求調整參數。Samba的強大功能可以滿足從家庭用戶到企業環境的各種文件共享需求。
“`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。