1987年,微軟公司和英特爾公司共同制定了SMB(Server Messages Block,服務器消息塊)協議,旨在解決局域網內的文件或打印機等資源的共享問題,這也使得在多個主機之間共享文件變得愈來愈簡單。node
Samba服務程序如今已經成爲在Linux系統與Windows系統之間共享文件的最佳選擇linux
Samba服務程序的配置方法數據庫
[root@zhang ~ ]# yum install sambavim
處理配置文件服務器
[root@zhang ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak [root@zhang ~]# cat /etc/samba/smb.conf.bak | grep -v "#" | grep -v ";" | grep -v "^$" > /etc/samba/smb.conf [root@zhang ~]# cat /etc/samba/smb.conf網絡
第1步:建立用於訪問共享資源的帳戶信息,Samba服務程序的數據庫要求帳戶必須在當前系統中已經存在,不然往後建立文件時將致使文件的權限屬性混亂不堪,由此引起錯誤。app
[root@zhang ~]# pdbedit -a -u zhangdom
第2步:建立用於共享資源的文件目錄,受權(SELinux),並當即生效ui
[root@zhang ~]# mkdir /home/database.net
[root@zhang ~]# chown -Rf zhang:zhang /home/database
[root@zhang ~]# semanage fcontext -a -t samba_share_t /home/database
[root@zhang ~]# restorecon -Rv /home/database/
第3步:設置SELinux服務與策略,使其容許經過Samba服務程序訪問普通用戶家目錄
[root@zhang database]# setsebool -P samba_enable_home_dirs on
第4步:編輯Samba服務程序的主配置文件。
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
security = user
passdb backend = tdbsam
load printers = yes
cups options = raw
[database]
comment = Do not arbitrarily modify the database file
path = /home/database
public = no
writable = yes
第5步:Samba服務程序的配置工做基本完畢。接下來重啓smb服務(Samba服務程序在Linux系統中的名字爲smb)並清空iptables防火牆
[root@zhang database]# systemctl restart smb
[root@zhang database]# systemctl enable smb
[root@zhang database]# iptables -F
[root@zhang database]# service iptables save
第6步: 驗證
window端 win+r 輸入\\192.168.10.10
輸入帳號後進入database目錄中。完成配置
Linux系統
Linux客戶端 須要安裝支持文件共享服務的軟件包(cifs-utils)
yum install cifs-utils
在Linux客戶端,按照Samba服務的用戶名、密碼、共享域的順序將相關信息寫入到一個認證文件中。爲了保證不被其餘人隨意看到,最後把這個認證文件的權限修改成僅root管理員纔可以讀寫:
[root@service ~]# vim auth.smb
username=zhang
password=zhang
domain=MYGROUP
[root@service ~]# chmod -Rf 600 auth.smb
在Linux客戶端上建立一個用於掛載Samba服務共享資源的目錄
[root@service ~]# mkdir /database
[root@service ~]# echo "//192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0 " >> /etc/fstab
[root@service ~]# mount -a
完成Linux客戶端成功地掛載了Samba服務的共享資源
NFS網絡文件系統
客戶端部署NFS服務來共享文件。NFS(網絡文件系統)服務能夠將遠程Linux系統上的文件共享資源掛載到本地主機的目錄上,從而使得本地主機(Linux客戶端)基於TCP/IP協議,像使用本地主機上的資源那樣讀寫遠程Linux系統上的共享文件
RHEL 7系統中默認已經安裝了NFS服務
清空NFS服務器上面iptables防火牆的默認策略,以避免默認的防火牆策略禁止正常的NFS共享服務。
[root@zhang ~]# iptables -F
[root@zhang ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
第2步:在NFS服務器上創建用於NFS文件共享的目錄,並設置足夠的權限確保其餘人也有寫入權限。
[root@zhang ~]# mkdir /nfsfile
[root@zhang ~]# chmod -Rf 777 /nfsfile
[root@zhang ~]# echo "welcome to linuxprobe.com" > /nfsfile/readme
第3步:NFS服務程序的配置文件爲/etc/exports
[root@zhang ~]# vim /etc/exports
/nfsfile 192.168.10.*(rw,sync,root_squash)
第4步:啓動和啓用NFS服務程序。因爲在使用NFS服務進行文件共享以前,須要使用RPC(Remote Procedure Call,遠程過程調用)服務將NFS服務器的IP地址和端口號等信息發送給客戶端。所以,在啓動NFS服務以前,還須要順帶重啓並啓用rpcbind服務程序,並將這兩個服務一併加入開機啓動項中。
[root@zhang ~]# systemctl restart rpcbind
[root@zhang ~]# systemctl enable rpcbind
[root@zhang ~]# systemctl restart nfs-server
[root@zhang ~]# systemctl enable nfs-server
ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/nfs.target.wants/nfs-server.service'
服務端配置完畢,接下來是客戶端
[root@service ~]# showmount -e 192.168.10.10
Export list for 192.168.10.10:
/nfsfile 192.168.10.*
建立掛載目錄
[root@service /]# mkdir /nfsfile
[root@service /]# mount -t nfs 192.168.10.10:/nfsfile /nfsfile
[root@service /]# echo "192.168.10.10:/nfsfile /nfsfile nfs defaults 0 0" >> /etc/fstab
配置完畢,此時客戶端 /nfsfile 目錄就與服務端/nfsfile 目錄共享了(鏈接上了)--不知道怎麼形容了
AutoFs自動掛載服務
不管是Samba服務仍是NFS服務,都要把掛載信息寫入到/etc/fstab中,這樣遠程共享資源就會自動隨服務器開機而進行掛載。雖然這很方便,可是若是掛載的遠程資源太多,則會給網絡帶寬和服務器的硬件資源帶來很大負載。若是在資源掛載後長期不使用,也會形成服務器硬件資源的浪費
autofs自動掛載服務能夠幫咱們解決這一問題。與mount命令不一樣,autofs服務程序是一種Linux系統守護進程,當檢測到用戶試圖訪問一個還沒有掛載的文件系統時,將自動掛載該文件系統
第一步:安裝autofs服務
[root@zhang ~]# yum install autofs
第二步:編輯配置文件 按照「掛載目錄 子配置文件」的格式進行填寫
[root@zhang ~]# vim /etc/auto.master
/media /etc/iso.misc
掛載目錄 子配置文件 建議以.misc結尾
第三步:編輯子配置文件
[root@zhang iso]# vim /etc/iso.misc
iso -fstype=iso9660,ro :/dev/cdrom
可將掛載目錄寫爲iso,而-fstype爲文件系統格式參數,iso9660爲光盤設備格式,ro、nosuid及nodev爲光盤設備具體的權限參數,/dev/cdrom則是定義要掛載的設備名稱
第四步:重啓autofs服務
[root@zhang media]# systemctl restart autofs
[root@zhang media]# systemctl enable autofs
完成
當咱們進入media目錄中發現沒有任何文件或文件夾,可是咱們能夠cd /media/iso