samba
Samba使用NetBIOS通訊協議,就像NFS是架構在RPC Server上面一樣,Samba是架構在NetBIOS(Network Basic Input/Output System)這個通訊協議上面所開發出來的,
其在Linux/unix系統中實現了微軟的SMB/CIFS網絡協議,從而使得跨平台的文件共享變得更加容易。在部署windows、Linux/unix混合平台的企業環境時,選用Samba可以很好的解決不同系統之間的文件互訪問題。
工作模式
Samba使用nmbd、smbd這兩個服務來控制定位主機和權限分配:
- nmbd
用來管理工作組、NetBIOS name等的解析。主要利用UDP協議開啟137,138端口來負責名稱解析的任務。
對應進程:nmdb
- smbd
主要用來管理Samba主機分享的目錄,檔案與打印機。主要利用TCP協議傳輸數據,開放端口為139,445
對應進程:smdb
共享方式
SAMBA 服務器四種共享方式 : share、user、server、domain
默認安全級別為user,要求提供用戶驗證。對於匿名共享服務,一般將安全級別設為share
配置文件
- samba服務的配置文件是 /etc/samba/smb.conf
smb.conf文件中包括4種結構:
- [Global]
Globa用於定義全局參數和缺省值
- [Homes]
Homes用於用戶的home目錄共享
- [printers]
printers用於定義打印機共享
- [Userdefined_shareName]
Userdefined_ShareName用於自定義共享(可有多個)。
搭載User模式的samba服務
[root@localhost ~]# useradd -M test1 服務端新建用戶test1
[root@localhost ~]# smbpasswd -a test1 為test1設置密碼
New SMB password:
Retype new SMB password:
Added user test1
[root@localhost ~]# echo 'test1 = hide ' > /etc/samba/smbusers 為隱藏賬號test1,為test1做賬號映射
[root@localhost ~]# cd /media
[root@localhost media]# ls
[root@localhost media]# mkdir share
[root@localhost media]# chown test1.test1 share/ 為文件修改所屬人及組
[root@localhost media]# vim /etc/samba/smb.conf
......
[global]
workgroup = SAMBA
security = user
username map = /etc/samba/smbusers 添加內容,指定解析名字的文件位置
......
[test1]
path = /media/share 共享文件路徑
write list = hide 可以執行寫權限的用戶
read only = No 可寫可讀
browseable = yes 可查看共享文件
guest ok = yes 所有人均可訪問共享目錄
public = yes 允許匿名用戶訪問
[root@localhost media]# systemctl enable --now smb nmb 啟動服務
[root@localhost ~]# smbclient -L 192.168.197.131 -U hide
Enter SAMBA\hide's password:
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
test1 Disk
IPC$ IPC IPC Service (Samba 4.11.2)
SMB1 disabled -- no workgroup available
[root@localhost ~]# vim /etc/fstab 編輯掛載文件,實現自動掛載
[root@localhost ~]# mount -t cifs //192.168.197.128/test1 /media -o username=hide,password=123456
linux效果
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 462M 0 462M 0% /dev
tmpfs 479M 0 479M 0% /dev/shm
tmpfs 479M 6.7M 472M 2% /run
tmpfs 479M 0 479M 0% /sys/fs/cgroup
/dev/mapper/rhel-root 17G 2.0G 16G 12% /
/dev/nvme0n1p1 1014M 154M 861M 16% /boot
tmpfs 96M 0 96M 0% /run/user/0
//192.168.197.128/test1 28G 1.7G 27G 7% /media
windows效果
搭載share模式的samba服務
[root@localhost share]# mkdir /media/nobody
[root@localhost share]# chmod 777 /media/nobody/ 創建共享目錄
[root@localhost share]# vim /etc/samba/smb.conf 配置文件編寫
[global]
workgroup = SAMBA
security = user
# username map = /etc/samba/smbusers
map to guest = Bad User 確定模式為share
passdb backend = tdbsam
[test2]
path = /media/nobody 指定目錄
browseable = yes
guest ok = yes
writable = yes
public = yes
[root@localhost share]# systemctl restart smb nmb 重啟服務
查看共享文檔
[root@localhost ~]# smbclient -L 192.168.197.128 -U 'Bad User'
Enter SAMBA\Bad User's password:
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
test1 Disk
test2 Disk
IPC$ IPC IPC Service (Samba 4.11.2)
SMB1 disabled -- no workgroup available
掛載
[root@localhost ~]# mount -t cifs //192.168.197.128/media/nobody /opt -o username='Bad User'
linux效果
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 462M 0 462M 0% /dev
tmpfs 479M 0 479M 0% /dev/shm
tmpfs 479M 6.7M 472M 2% /run
tmpfs 479M 0 479M 0% /sys/fs/cgroup
/dev/mapper/rhel-root 17G 2.0G 16G 12% /
/dev/nvme0n1p1 1014M 154M 861M 16% /boot
tmpfs 96M 0 96M 0% /run/user/0
//192.168.197.128/test2 28G 1.7G 27G 7% /media
windows效果