linux入門系列16–文件共享之Samba和NFS

前一篇文章「linux入門系列15–文件傳輸之vsftp服務」講解了文件傳輸,本篇繼續講解文件共享相關知識。

文件共享在生活和工作中非常常見,比如同一團隊中不同成員需要共同維護同一個文檔,在windows環境下,通常會選用第三方協作工具,如騰訊文檔,石墨文檔等等。

之前講解了基於ftp的文件傳輸,為何還會單獨講解文件共享呢?試想一下,假如我們要修改伺服器上某個文件,如果使用ftp的話,需要先下載下來進行修改,然後在上傳到伺服器。這樣是很繁瑣的,這時候就可以使用文件共享來解決這個問題。

文件傳輸和文件共享有本質的區別,基於ftp協議的文件傳輸可以實現不同機器之間文件的傳輸和拷貝,會產生多個副本。而文件共享則只有一個副本,各個客戶端連接到共享伺服器操作的是同一份文件。

Linux環境下可以通過Samba服務或NFS服務來實現文件共享,下面分別進行介紹。

一、文件共享服務Samba

1.1 Samba概述

為了解決區域網內的文件和印表機等資源的共享問題,微軟和英特爾與1987年共同制定了 SMB(Server Messages Block,伺服器消息塊)協議,這使得多個主機之間共享文件變得簡單。

到了1991年,一個國外牛逼大學生 為了解決 Linux 系統 與 Windows 系統之間的文件共享問題,基於SMB協議開發出了SMBServer服務程式。它是一款開源的文件共享軟體、只需要簡單的配置就能實現文件共享。

後來作者把它註冊商標為Samba,它現在已經成為Linux系統和Windows系統之間共享文件的最佳選擇

1.2 Samba安裝及配置文件

安裝之前規劃並準備實驗環境

角色 作業系統 ip地址 主機名稱
Samba伺服器 Centos7 192.168.78.101 sambaserver
Samba客戶端 Centos7 192.168.78.102 cliet
Samba客戶端 Windows10 宿主機即可

Samba服務程式的名字就是軟體包的名字,安裝後的服務名叫smb,在sambaserver主機上,通過rpm名稱查看系統是否已經安裝,如果沒有安裝則通過Yum軟體倉庫進行安裝。

[root@sambaserver ~]# rpm -q samba  package samba is not installed  [root@sambaserver ~]# yum install samba  Loaded plugins: fastestmirror, langpacks  ...省略部分內容  Installed:    samba.x86_64 0:4.1.1-31.el7  Complete!  [root@sambaserver yum.repos.d]# ^C  [root@sambaserver yum.repos.d]# rpm -q samba  samba-4.1.1-31.el7.x86_64  [root@sambaserver yum.repos.d]# 

安裝完成成後,配置文件所在目錄為:/etc/samba/,主配置文件為:smb.conf

[root@sambaserver yum.repos.d]# ll /etc/samba/  total 20  -rw-r--r--. 1 root root    20 Dec  3 01:48 lmhosts  -rw-r--r--. 1 root root   706 Dec  3 01:48 smb.conf  -rw-r--r--. 1 root root 11327 Dec  3 01:48 smb.conf.example  [root@sambaserver yum.repos.d]# 

接下來我們看下配置文件里的主要內容,還是按「linux入門系列15–文件傳輸之vsftp服務」中的2.4.1提到的老規矩,將注釋以及空行資訊去掉,便於觀察配置項。

[root@sambaserver yum.repos.d]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak  [root@sambaserver yum.repos.d]# cat /etc/samba/smb.conf.bak | grep -v "#" |grep  -v ";" | grep -v "^$">/etc/samba/smb.conf 

以上腳本通過grep命令-v參數反向選擇,去掉以#和分號開頭的注釋資訊,用^$過濾掉空白行,過濾無用資訊後通過重定向覆寫到原始配置文件中。

接下來看看主配置文件的內容:

[root@sambaserver yum.repos.d]# cat /etc/samba/smb.conf  [global]          workgroup = SAMBA #工作組名稱          security = user  #安全驗證的方式,總共有4種:share、user、server、domain          passdb backend = tdbsam #定義用戶後台的類型,共有3種:smbpasswd、tdsam、ldapsam          printing = cups          printcap name = cups          load printers = yes #設置在 Samba 服務啟動時是否共享印表機設備          cups options = raw  #印表機的選項  [homes]  #共享參數          comment = Home Directories #描述資訊          valid users = %S, %D%w%S          browseable = No #指定共享資訊是否在「網上鄰居」中可見          read only = No          inherit acls = Yes  [printers] #印表機共享參數          comment = All Printers          path = /var/tmp          printable = Yes          create mask = 0600          browseable = No  [print$]          comment = Printer Drivers          path = /var/lib/samba/drivers          write list = @printadmin root          force group = @printadmin          create mask = 0664          directory mask = 0775  [root@sambaserver yum.repos.d]#

我直接把注釋添加到每項配置的後邊,方便查看。

其中[homes]參數為來訪用戶的家目錄共享資訊,[printers]參數為共享的打 印機設備,如果不需要可以手動直接刪除即可。

1.3 Samba文件共享實操

通過前文可以看到,Samba服務程式的主配置文件包括全局配置參數和區域配置參數。顧名思義,全局配置參數用於設置整體的資源共享環境,對每一個獨立的共享資源都有效;而區域配置參數則用於設置單獨的共享資源,且只對該資源有效。

下面我們就來配置並使用Samba服務

1.3.1 文件共享伺服器配置

(1)Samba主配置文件配置

[root@sambaserver yum.repos.d]# cd /etc/samba/  [root@sambaserver samba]# vim smb.conf  ...省略原有內容  [database]   #共享名稱設為database          comment=請勿隨意修改資料庫喲  #提示資訊          path=/home/database  #共享目錄/home/database          public=no    #關閉所有人可見          writeable=yes #允許寫入操作

添加以上內容並保存退出。

補充一下主配置文件中全局配置global的2個參數,security和passdb backend 。

從1.2中講到的主配置文件中可以看出,它們的默認值分別為user和tdbsam。

其中security有4種安裝認證方式,分別如下:

  • share:來訪主機無需驗證口令,比較方便,但安全性很差

  • user:需驗證來訪主機提供的口令後才可以訪問,提升了安全性

  • server:使用獨立的遠程主機驗證來訪主機提供的口令(集中管理賬戶)

  • domain:使用域控制器進行身份驗證

passdb backend有3種方式,定義用戶後台的類型:

  • smbpasswd:使用 smbpasswd 命令為系統用戶設置 Samba 服務程式的密碼

  • tdbsam:創建資料庫文件並使用 pdbedit 命令建立 Samba 服務程式的用戶

  • ldapsam:基於 LDAP 服務進行賬戶驗證

接下來我們就採用默認的user驗證模式來進行設置,其他模式的搭配使用暫時不做講解。

(2)創建訪問共享資源的帳號

從默認配置文件中可以看出,在RHEL7中Samba採用默認的user認證模式,可以確保僅讓有密碼且受信任的用戶訪問共享資源,需要先建立賬戶資訊資料庫,並且要求賬戶必須在當前系統中已經存在。

與前文講解ftp時類似,要求用戶在當前系統中已經存在,是為了避免在創建文件時引起文件許可權屬性混亂而引發錯誤。

用於管理 SMB 服務程式的賬戶資訊資料庫的命令為:pdbedit。

語法格式:

​ pdbedit [參數] 賬戶

參數:

參數 作用
-a 建立Samba用戶
-x 刪除Samba用戶
-L 列出賬戶列表
-Lv 列出賬戶詳細資訊的列表

先創建用戶samba,並設置密碼為:123456

[root@sambaserver samba]# useradd -s /sbin/nologin samba  [root@sambaserver samba]# passwd samba  Changing password for user samba.  New password:  BAD PASSWORD: The password is shorter than 8 characters  Retype new password:  passwd: all authentication tokens updated successfully.  [root@sambaserver samba]# id samba  uid=1001(samba) gid=1001(samba) groups=1001(samba)  [root@sambaserver samba]# 

使用功能pdbedit創建samba服務的用戶,密碼為888888(注意此處的密碼不是samba系統用戶登錄的密碼,雖然也可以設置密碼給之前密碼相同,但一定要分清楚這2個密碼是單獨的,不要弄混淆

[root@sambaserver samba]# pdbedit -a -u samba  new password: #此處輸入密碼,密碼不一定要給samba用戶登錄系統的密碼一致  retype new password: #重複輸入密碼  Unix username:        samba  NT username:  Account Flags:        [U          ]  User SID:             S-1-5-21-3641161961-465911512-1567372236-1000  Primary Group SID:    S-1-5-21-3641161961-465911512-1567372236-513  Full Name:  Home Directory:       \sambaserversamba  HomeDir Drive:  Logon Script:  Profile Path:         \sambaserversambaprofile  Domain:               SAMBASERVER  Account desc:  Workstations:  Munged dial:  Logon time:           0  Logoff time:          Wed, 06 Feb 2036 23:06:39 CST  Kickoff time:         Wed, 06 Feb 2036 23:06:39 CST  Password last set:    Wed, 22 Jan 2020 14:45:50 CST  Password can change:  Wed, 22 Jan 2020 14:45:50 CST  Password must change: never  Last bad password   : 0  Bad password count  : 0  Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF  [root@sambaserver samba]# 

(3)創建共享資源的目錄

在前面的第一步中我們配置了共享目錄為/home/database。因此我們來創建此目錄,需要考慮到文件讀寫許可權問題。

[root@sambaserver samba]# mkdir /home/database  [root@sambaserver samba]# chown -Rf samba:samba /home/database/  [root@sambaserver samba]# 

(4)SELinux上下文和策略設置

由於/home目錄是系統中普通用戶的家目錄,因此不僅要考慮文件讀寫許可權,還要注意SELinux安全上下文以及域策略所帶來的限制(原始的主配置文件中有關於SELinux安全上下文策略的配置說明)。

設置SELinux安全上下文

[root@sambaserver samba]# semanage fcontext -a -t samba_share_t /home/database  [root@sambaserver samba]# restorecon -Rv /home/database/  restorecon reset /home/database context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:samba_share_t:s0  [root@sambaserver samba]# 

除了設置上下文,還需要設置SELinux域相關策略,開啟相關的策略即可

[root@sambaserver samba]# getsebool -a |grep samba  samba_create_home_dirs --> off  samba_domain_controller --> off  samba_enable_home_dirs --> off  samba_export_all_ro --> off  samba_export_all_rw --> off  samba_portmapper --> off  samba_run_unconfined --> off  samba_share_fusefs --> off  samba_share_nfs --> off  sanlock_use_samba --> off  use_samba_home_dirs --> off  virt_sandbox_use_samba --> off  virt_use_samba --> off  [root@sambaserver samba]# setsebool -P samba_enable_home_dirs on  [root@sambaserver samba]# 

(5)防火牆設置

samba服務名稱為smb,重啟並設為開機啟動,清空防火牆策略

[root@sambaserver samba]# systemctl restart smb  [root@sambaserver samba]# systemctl enable smb.service  Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.  [root@sambaserver samba]# iptables -F

至此,就可以用客戶端使用samba服務實現文件共享了

先在共享目錄準備一個文件用於客戶端共享

[root@sambaserver home]# cd database/  [root@sambaserver database]# ll  total 0  [root@sambaserver database]# echo "samba server">samba.txt  [root@sambaserver home]# chown -Rf samba:samba /home/database/  [root@sambaserver database]# ll  total 4  -rw-r--r--. 1 samba samba 13 Jan 22 15:44 samba.txt

這樣客戶端就可以查看並編輯此共享文件了。

Samba支援Windows、Linux、macOS之間文件共享,接下來演示客戶端是Linux和Windows的情況。

1.3.2 Linux客戶端訪問文件共享服務

在之前準備的samba客戶端主機上安裝客戶端後,用之前的samba帳號密碼就可以共享文件了。

(1)安裝共享客戶端

[root@cliet ~]# yum install cifs-utils  Loaded plugins: fastestmirror, langpacks  Loading mirror speeds from cached hostfile  ...省略部分內容  Installed:    cifs-utils.x86_64 0:6.2-10.el7  Complete!  [root@cliet ~]# 

(2)創建認證文件

[root@cliet ~]# vim auth.smb  username=samba  password=888888  domain=SAMBA

保存並退出,用戶密碼為之前1.3.1第二步中創建的samba用戶及對應的密碼,domain為主配置文件中的域。

為了保證不被其他人隨意看到,最後把這個認證文件的許可權修改為僅root管理才能夠讀寫。

[root@cliet ~]# ll auth.smb  -rw-r--r--. 1 root root 44 Jan 22 15:37 auth.smb  [root@cliet ~]# chmod 600 auth.smb  [root@cliet ~]# ll auth.smb  -rw-------. 1 root root 44 Jan 22 15:37 auth.smb  [root@cliet ~]# 

(3)本地創建目錄掛載Samba共享目錄

[root@cliet ~]# mkdir /database  [root@cliet ~]# vim /etc/fstab  //192.168.78.101/database /database cifs credentials=/root/auth.smb 0 0  #保存並退出  [root@cliet ~]# mount -a

這樣就可以查看並修改共享伺服器內的內容

[root@cliet ~]# ll /database/  total 4  -rw-r--r--. 1 root root 13 Jan 22 15:44 samba.txt  [root@cliet ~]# cat /database/samba.txt  samba server  [root@cliet ~]# 
1.3.3 Windows訪問文件共享服務

本演示以win10為例

在開始菜單輸入共享伺服器地址

在彈出彈出登錄框輸入正確的帳號密碼

進入共享目錄

進入目錄後,就可以執行查看、寫入、更名、刪除文件等操作,在samba伺服器和對應的其他客戶端就可以看到文件的變化。因此就實現了文件共享。

二、網路文件系統NFS

如果你只是在Linux主機之間共享文件,那NFS將更加簡單。

NFS(Network File System即網路文件系統)服務可以將遠程 Linux 系統上的文件共享資源掛載到本地主機的目錄上,從而使得客戶端基於TCP/IP協議,像使用本地主機上的資源一樣讀寫遠程Linux系統上的共享文件。

虛擬機準備,可以單獨新克隆兩台虛擬機,此處我就直接用原來的2台機器,只是要注意為了避免上一實驗的干擾,將之前的Samba客戶端作為nfs的伺服器,將Samba伺服器當作nfs的客戶端。規劃如下:

角色 作業系統 ip地址 主機名稱
NFS客戶端 Centos7 192.168.78.101 sambaserver
NFS伺服器 Centos7 192.168.78.102 cliet

2.1 NFS伺服器配置

(1)安裝NFS

RHEL7系統中默認已經安裝了NFS服務,可以通過rpm命令查看,當然也可以直接執行如下安裝命令,如果有新的包會自動更新,如果已是最新版本則提示Nothing to do。

[root@cliet ~]# rpm -q nfs-utils  nfs-utils-1.3.0-0.65.el7.x86_64  [root@cliet ~]# yum install nfs-utils  Loaded plugins: fastestmirror, langpacks  Loading mirror speeds from cached hostfile   * base: mirrors.aliyun.com   * extras: mirrors.aliyun.com   * updates: mirrors.aliyun.com  Package 1:nfs-utils-1.3.0-0.65.el7.x86_64 already installed and latest version  Nothing to do  [root@cliet ~]# 

NFS包名為nfs-utils。

(2)在NFS伺服器創建共享目錄

[root@cliet ~]# mkdir /nfs  [root@cliet ~]# chmod -Rf 777 /nfs/  [root@cliet ~]# echo "nfs server">/nfs/nfs.txt  [root@cliet ~]# chmod -Rf 777 /nfs/  [root@cliet ~]# ll /nfs/  total 4  -rwxrwxrwx. 1 root root 11 Jan 22 23:11 nfs.txt  [root@cliet ~]# 

創建目錄,修改許可權,並創建共享文件。

(3)NFS服務配置

NFS服務程式配置文件為/etc/exports,默認為空。採用如下格式定義要共享的目錄和相應的許可權。

格式:共享目錄的路徑 允許訪問的 NFS 客戶端(共享許可權參數)

相關參數及作用如下

參數 作用
ro 只讀
rw 讀寫
root_squash 當NFS客戶端以root管理員訪問時,映射為NFS伺服器的匿名用戶
no_root_squash 當 NFS客戶端以root管理員訪問時,映射為NFS伺服器的root管理員
all_squash 無論NFS客戶端使用什麼賬戶訪問,均映射為NFS伺服器的匿名用戶
sync 同時將數據寫入到記憶體與硬碟中,保證不丟失數據
async 優先將數據保存到記憶體,然後再寫入硬碟;這樣效率更高,但可能會 丟失數據

按上邊的語法格式,把第一步創建的nfs目錄共享給192.168.78.0/24網段內的所有主機,讓這些主機都有讀寫許可權。為了最大限度保證數據不丟失,在將數據寫入到NFS伺服器的硬碟中後才會結束操作,同時把來訪客戶端root管理員映射為本地的匿名用戶,配置如下:

[root@cliet ~]# vim /etc/exports  /nfs 192.168.78.*(rw,sync,root_squash)

保存並退出,注意ip地址與許可權之間沒有空格。

(4)設置防火牆策略

直接清空iptables防火牆的默認策略,以免默認的防火牆策 略禁止正常的NFS共享服務。

[root@cliet ~]# iptables -F

(5)啟動NFS服務程式

[root@cliet ~]# systemctl restart rpcbind  [root@cliet ~]# systemctl enable rpcbind  [root@cliet ~]# systemctl start nfs-server  [root@cliet ~]# systemctl enable nfs-server

在使用NFS服務進行文件共享之前,需要使用RPC(Remote Procedure Call,遠程過程調用)服務將NFS伺服器的I 地址和埠號等資訊發送給客戶端。

因此,在啟動NFS服務之前,還需要重啟並啟用 rpcbind 服務程式,並將這兩個服務一併加入開機啟動項中。

至此NFS伺服器端配置完成,接下來配置NFS客戶端。

2.2 NFS客戶端使用

(1)查看NFS伺服器

查看NFS伺服器遠程共享資訊使用showmount命令。

語法:

showmount [參數] 伺服器ip

參數:

參數 作用
-e 顯示NFS伺服器的共享列表
-a 顯示本機掛載的文件資源的情況
-v 顯示版本號

輸出格式為:「共享的目錄名稱 允許使用客戶端地址」

[root@sambaserver database]# showmount -e 192.168.78.102  Export list for 192.168.78.102:  /nfs 192.168.78.*  [root@sambaserver database]#

(2)創建目錄並掛載

[root@sambaserver database]# mkdir /nfs  [root@sambaserver database]# mount -t nfs 192.168.78.102:/nfs /nfs  [root@sambaserver database]# ll /nfs/  total 4  -rwxrwxrwx. 1 root root 11 Jan 22 23:11 nfs.txt

使用mount命令並結合-t 參數,指定要掛載的文件系統的類型為nfs,並在命令後面寫上伺服器的 IP地址、伺服器上的共享目錄以及要掛載到本地系統的目錄/nfs,這樣就可以看到共享的目錄文件了。

(3)掛載資訊持久化

為了保證上一步驟的掛載能一直生效,需要將其寫入到fstab文件中。

[root@sambaserver database]# vim /etc/fstab  ...省略無關內容  192.168.78.102:/nfs /nfs nfs defaults 0 0

這樣就在本地完成了伺服器的文件共享。

三、自動掛載服務autofs

3.1 autofs概述

無論是之前講解本地yum源的安裝還是本文講解的Samba和NFS服務,都需要將掛載資訊接入到/etc/fstab文件中,這樣才會使共享資源自動隨伺服器開機而進行掛載。

但是如果掛載的遠程資源太多,則會給網路頻寬和硬體資源帶來很大的壓力。如果掛載後長期不使用,會造成資源的浪費。

為了不造成浪費,可以在每次需要使用才才去手動掛載,但是這樣操作又非常繁瑣。為了解決這個問題,autofs自動掛載服務應運而生。

與mount命令不同,autofs服務程式是一 種Linux系統守護進程,當檢測到用戶視圖訪問一個尚未掛載的文件系統時,將自動掛載該文件系統。

簡單說就是,將掛載資訊寫入/etc/fstab文件後,系統在每次開機時都自動將其掛載,而autofs 服務程式則是在用戶需要使用該文件系統時才去動態掛載,從而節約了網路資源和伺服器的硬體資源。

3.2 autofs安裝及配置文件

3.2.1 autofs安裝
[root@sambaserver database]# yum install autofs  Loaded plugins: fastestmirror, langpacks  ...省略部分內容  Installed:    autofs.x86_64 1:5.0.7-106.el7  Dependency Installed:    hesiod.x86_64 0:3.2.1-3.el7  Complete!  [root@sambaserver database]# 
3.2.2 配置文件解釋

autofs服務程式主配置文件為:/etc/auto.master,我們一般採用主配置和子配置的方式進行配置。原因是生產環境中,可能會同時管理很多設備的掛載操作,如果把所有掛載資訊都寫入主配置文件,一旦內容多了將難以管理,且不利於服務執行效率。

主配置文件中採用「掛載目錄 子配置文件」的格式填寫,掛載目錄是設備掛載位置的上一級目錄。例如,光碟設備一般掛載到/media/cdrom目錄中,那麼主配置文件中的掛載目錄就寫成/media即可。

子配置文件需要用戶自定義,文件名稱沒有嚴格要求,後綴建議以.misc結束。格式為:「掛載目錄 掛載文件類型及許可權 :設備名稱」。

下邊就以自動掛載光碟機為例,進行演示autofs的用法

3.3 以光碟機為例演示sutofs使用

3.3.1 autofs配置

主配置文件

[root@sambaserver database]# vim /etc/auto.master  #  # Sample auto.master file  # This is a 'master' automounter map and it has the following format:  # mount-point [map-type[,format]:]map [options]  # For details of the format look at auto.master(5).  #  /media /etc/iso.misc  /misc   /etc/auto.misc  #  # NOTE: mounts done from a hosts map will be mounted with the  #       "nosuid" and "nodev" options unless the "suid" and "dev"  #       options are explicitly given.  #  /net    -hosts  #  # Include /etc/auto.master.d/*.autofs  # The included files must conform to the format of this file.  #  +dir:/etc/auto.master.d  #  # Include central master map if it can be found using  # nsswitch sources.  #  # Note that if there are entries for /net or /misc (as  # above) in the included master map any keys that are the  # same will not be seen as the first read key seen takes  # precedence.  #  +auto.master  [root@sambaserver database]# 

添加/media /etc/iso.misc保存並退出,其他內容不變。

子配置文件

[root@sambaserver database]# vim /etc/iso.misc  iso -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom

保存並退出。

說明:把光碟設備掛載到/media/iso 目錄中,子配置文件可將掛載目錄寫為 iso,而-fstype 為文件系統格式參數,iso9660 為光碟設備格式,ro、nosuid 及 nodev 為光碟設備具體的許可權參數,/dev/cdrom 則是定義要掛載的設備名稱。

3.3.2 啟動autofs服務

配置完成後,啟動autofs服務並加入開機啟動

[root@sambaserver database]# systemctl start autofs  [root@sambaserver database]# systemctl enable autofs  Created symlink from /etc/systemd/system/multi-user.target.wants/autofs.service to /usr/lib/systemd/system/autofs.service.  [root@sambaserver database]# 
3.3.3 使用autofs服務

經過以上操作我們配置並開啟了autofs服務,我們先來看下是否已經給我們掛載好了光碟設備

[root@sambaserver database]# df -h  Filesystem               Size  Used Avail Use% Mounted on  /dev/mapper/centos-root   18G  4.3G   14G  25% /  devtmpfs                 905M     0  905M   0% /dev  tmpfs                    914M   76K  914M   1% /dev/shm  tmpfs                    914M   29M  886M   4% /run  tmpfs                    914M     0  914M   0% /sys/fs/cgroup  /dev/sda1                497M  120M  377M  25% /boot  192.168.78.102:/nfs       18G  4.6G   13G  26% /nfs  [root@sambaserver media]# ls /media/  [root@sambaserver media]# 

可以看到游標設備沒有掛載上,並且/media 目錄中根本就沒有 iso 子目錄

接下來,我們直接進入到掛載的/media/iso目錄,看看是否有內容

[root@sambaserver media]# cd /media/  [root@sambaserver media]# ll  total 0  [root@sambaserver media]# cd iso  [root@sambaserver iso]# ls  CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7  EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7  EULA             isolinux  repodata  TRANS.TBL  [root@sambaserver iso]# df -h  Filesystem               Size  Used Avail Use% Mounted on  /dev/mapper/centos-root   18G  4.3G   14G  25% /  devtmpfs                 905M     0  905M   0% /dev  tmpfs                    914M   76K  914M   1% /dev/shm  tmpfs                    914M   29M  886M   4% /run  tmpfs                    914M     0  914M   0% /sys/fs/cgroup  /dev/sda1                497M  120M  377M  25% /boot  192.168.78.102:/nfs       18G  4.6G   13G  26% /nfs  /dev/sr0                 3.9G  3.9G     0 100% /media/iso  [root@sambaserver iso]# 

以上演示說明,當切換到iso目錄時,也就是說只有使用掛載資源時,autofs才自動進行掛載。當系統重啟後可以看到它沒有掛載上去,而再次切換到/media/iso目錄時,又會自動掛載。通過這種方式實現了按需分配,從而節約頻寬等資源。

在講解完文件共享之後,下一篇文章將分享使用Postfix和Dovecot搭建郵件系統。