一、介紹
SAMBA最初發展的主要目的就是用來進行溝通windows與unix like這兩個不同的操作系統平臺
主要功能爲:
1、共享文件與打印機服務
2、可以提供用戶登陸samba主機時的身份認證,以提供不同身份用戶的個別數據
3、可以進行windows網絡上的主機名解析
4、可以進行設備的共享
協議:SAMBA使用的NetBIOS通信協議,NetBIOS是無法跨越路由的,目前SAMBA還是比較廣泛的使用在LAN中,也可以通過NetBIOS over TCP/IP的技術,就可以跨路由使用SAMBA服務器提供的功能。
二、構成
主要使用軟件包:
samba.x86_64 :主要提供了SMB服務器所需要的各項服務程序(smbd、nmbd)
samba-client.x86_64 :主要提供客戶端所需要的命令
samba-common :主要提供了客戶端與服務端都會使用到的命令
SAMBA服務器主要是通過兩個服務
1、nmbd:用來管理工作組、NetBIOS Name等的解析,主要是利用UDP協議開啓端口137、138來負責名稱解析的任務
2、smbd:用來管理SAMBA主機共享的目錄、文件與打印機等,主要是利用可靠的TCP協議來傳輸數據,開放的端口爲139、445
主配置文件 :/etc/samba/smb.conf
三、主要使用命令
服務端:設置火牆策略,添加服務,開啓smb服務
[root@serevr ~]# firewall-cmd --permanent --add-service=samba
success
[root@serevr ~]# firewall-cmd --permanent --add-service=samba-client
success
[root@serevr ~]# systemctl restart firewalld.service
永久設置,重啓服務
客戶端:匿名用戶登陸
[root@serevr ~]# smbclient -L //172.25.254.173
服務端:設置samba用戶,samba用戶必須爲服務器端的本地用戶
[root@serevr ~]# smbpasswd -a student ##student用戶爲本地用戶
New SMB password: ##samba用戶密碼與linux登陸密碼可一致也可不一致
Retype new SMB password:
Added user student.
[root@serevr ~]# pdbedit -L ##查看samba用戶
student:1000:Student User
客戶端:[root@serevr ~]# smbclient -L //172.25.254.173 -U student ##使用student用戶身份登陸
Enter student's password:
[root@serevr ~]# smbclient //172.25.254.173/student -U student ##進入共享中的student目錄
###要是發現進入student目錄中ls沒有出現的內容,檢查selinux的問題,若安全上下文不匹配則ls不能顯示出來。
而且會出現掛載不上的問題。
[root@serevr ~]# setsebool -P samba_enable_home_dirs 1
客戶端:掛載測試
[root@www ~]# mount -o username=student,password=student //172.25.254.173/student /mnt/
修改配置文件 (此配置文件中#;都是註釋符號)
1、設置與主機名有關的信息
89 workgroup = zhaoyan ##工作組的名稱
90 netbios name=zhaoyanserver ##主機的NetBIOS名稱,每臺主機均不同
91 server string = Samba Server Version %v ##主機的簡易名稱
客戶端:測試
黑白名單
96 ; hosts allow = 127. 192.168.12. 192.168.13. ##默認是一個網段
97 hosts deny = 172.25.254.71 ##拒絕172.25.254.71主機連接
客戶端:測試
加入共享的內容:
[DATA]
comment = hahaha
path = /westos
使用[root@localhost westos]# testparm 測試是否文件是否有錯誤
##此時在客戶端測試掛載時出現報錯
##報錯原因爲服務端/westos的目錄權限不夠
修改該目錄的權限
客戶端測試:
[root@www ~]# mount //172.25.254.173/DATA /mnt/ -o username=student,password=111
可以在配置文件中進行開機直接自動掛載
vim /etc/fstab
增加參數:
[DATA]
comment = hahaha
path = /westos
writable = yes ##可寫
guest ok = yes ##單純共享時,讓用戶隨意登陸設置值
讓用戶student可寫
客戶端測試:
讓student組的用戶均可寫:
配置文件:
測試:
讓某一用戶在掛載後使用root的身份
配置文件:
測試:
不能被瀏覽到資源名稱:
配置文件:
測試:
共享資源僅能被student組的用戶可以瀏覽:
配置文件:
若在客戶端的student用戶將共享資源掛載在/mnt/上,但經過測驗,退出student用戶westos登陸其本機的帳號密碼,/mnt/下仍然是掛載狀態,而且若權限與服務端允許,該共享資源的內容是可以被隨意改寫的,此下,設置權限,改變此不安全的行爲。
多用戶掛載:[root@www mnt]# yum install cifs-utils.x86_64 -y
在客戶端的行爲:
建立文件:
vim /root/smbfile
chmod 600 /root/smbfile
測試:
[root@www ~]# mount -o credentials=/root/smbfile,multiuser,sec=ntlmssp //172.25.254.173/DATA /mnt
切換客戶端的用戶
該切換的用戶也可進行一次samba的登陸
[student@www ~]$ cifscreds add -u zhaoyan 172.25.254.173