檔案共享-samba
smb:伺服器消息塊(server message block),此協定可實作檔案共享和列印機共享。windows系統中預設采用smb協定來實作共享。工作端口是445(data share)和139(netbios主機名解析)。
netbios:網絡基本輸入輸出系統,主要實作的功能是通過主機名來實作計算機之間的互通路。目前被直接捆綁在IP協定簇中。
samba服務的作用:
1.主要實作不同平台間的檔案共享(linux/unix和windows)
2.實作名稱解析
3.隔離windows病毒
4.豐富的權限管理機制
samba服務軟體的安裝說明:
samba是伺服器端軟體
samba-client是端客戶軟體
samba-common是samba的公用程式檔案
samba服務的部署流程:實驗環境是centos7.6 IP為192.168.11.12,實體機為192.168.11.1
1.關閉selinux和防火牆功能。
setenforce 0
getenforce
systemctl stop firewalld
systemctl status firewallld
2.查軟體是否已安裝,未安裝就進行安裝。
rpm -qa | grep samba
yum search samba
yum install -y samba samba-client samba-common
3.啟動服務,允許開機自動啟動服務,查服務狀态。
systemctl restart smb
systemctl status smb 或 lsof -i:445 或 netstat -atunlp | grep :445
systemctl enable smb
netstat選項:是檢視網絡程序狀态(net stat)的指令。
-a 即all,顯示所有網絡程序
-t 即tcp,顯示TCP協定的網絡程序
-u 即udp,顯示UDP協定的網絡程序
-n 即number,以數字方式顯示協定的端口号,例 ftp 21、http 80、ssh 22、vnc 5900等
-l 即listen,隻顯示狀态為listen監聽的網絡程序
-p 即PID程序号,顯示網絡程序的PID号
網絡程序狀态(用man netstat可查):listen監聽 ESTABLISHED已連接配接 CLOSE_WAIT等待關閉
4.查服務的配置檔案,根據需求對服務的配置檔案進行設定。
rpm -ql samba 查所有檔案清單
rpm -qc samba-common 查配置檔案清單
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCM581dvRWYoNHLwEzX5xCMx8FesU2cfdGLwATMfRHLGZkRGZkRfJ3bs92YskmNhVTYykVNQJVMRhXVEF1X0hXZ0xiNx8VZ6l2cssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLykTO1EjM4MDN1cDOxUTNx8CX2AzMwkTMwIzLcNXZnFWbp9CXvwVbvNmLvR3YxUjL0M3Lc9CX6MHc0RHaiojIsJye.png)
/etc/openldap/schema/samba.schema samba的openldap認證配置檔案
/etc/pam.d/samba samba的pam認證檔案
/etc/logrotate.d/samba 日志輪滾政策檔案
/etc/samba/lmhosts 本地主機配置檔案
/etc/samba/smb.conf samba的主配置檔案,用于實作samba的環境設定和自定義共享目錄
/etc/sysconfig/samba samba的系統配置檔案
samba的預設共享目錄(預設功能):
普通使用者可通路共享,賬号名稱是用useradd建立的且用pdbedit -a指令設定密碼的使用者,通路共享的目錄是使用者自己的家目錄(/home/使用者名),預設可讀可寫和上傳。
自定義共享目錄:需要在/etc/samba/smb.conf主配置檔案中設定共享參數
5.檢測配置檔案文法,重新開機服務(最好用reload平滑重新開機)。
testparm 檢測配置檔案文法
systemctl reload smb 平滑重新開機samba服務
5.1.建立通路共享的使用者賬号,設定登入密碼:
useradd lucy
useradd lily
pdbedit lucy -a 或 smbpasswd lucy -a
pdbedit lily -a 或 smbpasswd lily -a
pdbedit -L 顯示samba使用者名清單
5.2 将/etc目錄用samba服務進行隻讀共享。
vim /etc/samba/smb.conf 添加如下内容
[etck] 共享名稱(商标)
comment=share etc directory 描述資訊,可随意定義
path=/etc 共享目錄路徑
public=yes 允許匿名通路共享
browseable=yes 允許在網路上的芳鄰中顯示(浏覽)
writeable=yes 開啟可寫權限
重新開機服務:systemctl reload smb
6.做内測(在伺服器端用用戶端軟體進行本地測試127.1),做公測(即用另一台客戶機來通路伺服器)
做内測(查共享資源): smbclient -L 127.1
做公測(smb登入測試): smbclient //192.168.11.12/etck -U lucy%01 (01是給lucy設定的密碼)
smbclient軟體的内部指令:
help或? 顯示指令幫助
ls 顯示共享目錄的檔案名清單
!指令 執行用戶端本地的shell指令。如 !date 、 !ls 、!pwd
lcd 切換本地(local)的工作目錄路徑。如 lcd /etc
pwd 顯示共享目錄的工作路徑
prompt 關閉或開啟互動式操作模式,即是否提示Yes/No
mkdir 在共享目錄中建立目錄,如 mkdir ak
mput 上傳多個本地目前目錄下的檔案到遠端伺服器的的目前工作目錄下。如mput host*
mget 從共享目錄中下載下傳多個檔案到本地目前目錄下。如 mget hosts
rm 删除檔案
rmdir 删除目錄
exit 退出smbclient軟體
用資料總管非匿名通路共享: Win+E ----> \\192.168.11.12\lucy ----> 下載下傳或上傳檔案
windows中清除samba共享通路緩存:Win+R ---> cmd 後執行如下指令---> net use * /del /y 和 gpupdate /force
-----------------------------------------------------------------------------------------------
smb.conf主配置檔案的其他功能選項:man smb.conf
smb.conf配置檔案内容由global全局環境設定、共享目錄設定兩部分組成。
smb.conf的預設設定選項:
[global] 全局環境設定
printcap name = cups 跟列印機有關的選項
security = USER 安全等級設定為USER使用者級,即需要使用者名和密碼驗證。還可以是什麼呢,請查man手冊。
username map = /etc/samba/vuser (自己添加的)虛拟使用者賬号檔案
workgroup = SAMBA 計算機所在的區域網路的工作組名
idmap config * : backend = tdb samba的使用者賬号資料庫檔案
cups options = raw 跟列印機有關的選項
[homes] 使用者家目錄的共享設定
browseable = No 不顯示在網路上的芳鄰中
comment = Home Directories 注釋說明資訊
inherit acls = Yes 允許繼承ACL權限
read only = No 禁止隻讀操作,即可讀可寫,等同于writable=Yes
valid users = %S %D%w%S 有效使用者賬号。%S是samba服務中的使用者賬号,%D目前域或目前工作組中的使用者賬号,
smb.conf中基于使用者通路控制的選項:
browseable=yes 允許在網路上的芳鄰中顯示共享名稱
public=yes 或 guest ok=yes 允許匿名使用者通路
writable=yes 或 readonly=no 允許寫操作,即可寫權限
#valid users=使用者1,使用者n,@組名 指定允許通路共享的使用者賬号(即白名單)
#invalid users=s3,@組名 隻禁止s3使用者通路共享(即黑名單)
技巧:隻允許少數人能通路共享時用白名單。隻禁止少數人能通路共享時用黑名單。
write list=使用者1,使用者n,@組名 指定有可寫權限的使用者賬号(即白名單)
smb.conf中基于IP通路控制的選項:man smb.conf 進入後執行/150就可以查到例子
hosts allow = 192.168. EXCEPT 192.168.11.1 允許192.168.*.*的所有主機通路共享,除了192.168.11.1之外
hosts deny = 192.168. EXCEPT 192.168.11.1 不允許192.168.*.*的所有主機通路共享,除了192.168.11.1之外
說明:hosts allow設定可以放在[global]全局環境設定中(限制通路所有共享目錄),也可以放在自定義共享目錄的設定中(僅限制通路此目錄)。