Samba和NFS文件共享

SAMBA文件共享服務

經過Yum軟件倉庫來安裝Samba服務程序node

[root@zhangjh ~]# yum install samba -y

 Samba 配置文件註釋信息較多,爲了便於配置,所以先把主配置文件改個名字,而後使用cat命令讀入主配置文件,再在grep命令後面添加-v參數(反向選擇),分別去掉全部以井號(#)和分號(;)開頭的註釋信息行,python

 對於剩餘的空白行可使用^$參數來表示並進行反選過濾,最後把過濾後的可用參數信息經過重定向符覆蓋寫入到原始文件名稱中。linux

[root@zhangjh ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
[root@zhangjh ~]# cat /etc/samba/smb.conf.bak | grep -v "#" | grep -v ";" | grep -v "^$" > /etc/samba/smb.conf
[root@zhangjh ~]# cat /etc/samba/smb.conf
[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
[homes]
	comment = Home Directories
	browseable = no
	writable = yes
[printers]
	comment = All Printers
	path = /var/spool/samba
	browseable = no
	guest ok = no
	writable = no
	printable = yes

  Samba服務程序中的參數以及做用:數據庫

[global]   #全局參數。
  workgroup = MYGROUP #工做組名稱
  server string = Samba Server Version %v #服務器介紹信息,參數%v爲顯示SMB版本號
  log file = /var/log/samba/log.%m #定義日誌文件的存放位置與名稱,參數%m爲來訪的主機名
  max log size = 50 #定義日誌文件的最大容量爲50KB
  security = user #安全驗證的方式,總共有4種
  #share:來訪主機無需驗證口令;比較方便,但安全性不好
  #user:需驗證來訪主機提供的口令後才能夠訪問;提高了安全性
  #server:使用獨立的遠程主機驗證來訪主機提供的口令(集中管理帳戶)
  #domain:使用域控制器進行身份驗證
  passdb backend = tdbsam #定義用戶後臺的類型,共有3種
  #smbpasswd:使用smbpasswd命令爲系統用戶設置Samba服務程序的密碼
  #tdbsam:建立數據庫文件並使用pdbedit命令創建Samba服務程序的用戶
  #ldapsam:基於LDAP服務進行帳戶驗證
  load printers = yes #設置在Samba服務啓動時是否共享打印機設備
  cups options = raw #打印機的選項
[homes]   #共享參數
  comment = Home Directories #描述信息
  browseable = no #指定共享信息是否在「網上鄰居」中可見
  writable = yes #定義是否能夠執行寫入操做,與「read only」相反
[printers]   #打印機共享參數
  comment = All Printers  
  path = /var/spool/samba #共享文件的實際路徑(重要)。
  browseable = no  
  guest ok = no #是否全部人可見,等同於"public"參數。
  writable = no  
  printable = yes

配置共享資源:vim

 Samba服務程序的主配置文件包括全局配置參數和區域配置參數。安全

全局配置參數用於設置總體的資源共享環境,對裏面的每個獨立的共享資源都有效。區域配置參數則用於設置單獨的共享資源,且僅對該資源有效。服務器

用於設置Samba服務程序的參數以及做用:網絡

參數 做用
[database] 共享名稱爲database
comment = Do not arbitrarily modify the database file 警告用戶不要隨意修改數據庫
path = /home/database 共享目錄爲/home/database
public = no 關閉「全部人可見」
writable = yes 容許寫入操做

第1步:建立用於訪問共享資源的帳戶信息。app

  在RHEL 7系統中,Samba服務程序默認使用的是用戶口令認證模式(user)。這種認證模式能夠確保僅讓有密碼且受信任的用戶訪問共享資源,並且驗證過程也十分簡單。不過,只有創建帳戶信息數據庫以後,才能使用用戶口令認證模式。另外,Samba服務程序的數據庫要求帳戶必須在當前系統中已經存在,不然日           後建立文件時將致使文件的權限屬性混亂不堪,由此引起錯誤。less

  pdbedit命令用於管理SMB服務程序的帳戶信息數據庫,格式爲「pdbedit [選項] 帳戶」。在第一次把帳戶信息寫入到數據庫時須要使用-a參數,之後在執行修改密碼、刪除帳戶等操做時就再也不須要該參數了。

       用於pdbedit命令的參數以及做用:

參數 做用
-a 用戶名 創建Samba用戶
-x 用戶名 刪除Samba用戶
-L 列出用戶列表
-Lv 列出用戶詳細信息的列表
[root@zhangjh ~]# pdbedit -a -u jianghua
new password:
retype new password:
Unix username:        jianghua
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-3165414194-1039364885-2898766718-1000
Primary Group SID:    S-1-5-21-3165414194-1039364885-2898766718-513
Full Name:            
Home Directory:       \\zhangjh\jianghua
HomeDir Drive:        
Logon Script:         
Profile Path:         \\zhangjh\jianghua\profile
Domain:               ZHANGJH
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:    Thu, 14 Jun 2018 16:58:13 CST
Password can change:  Thu, 14 Jun 2018 16:58:13 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

第2步:建立用於共享資源的文件目錄。

   注意關閉SElinux。

[root@zhangjh ~]# mkdir /home/database
[root@zhangjh ~]# chown -Rf jianghua:jianghua /home/database/
[root@zhangjh ~]# setenforce 0

第3步:在Samba服務程序的主配置文件中,寫入共享信息。在原始的配置文件中,[homes]參數爲來訪用戶的家目錄共享信息,[printers]參數爲共享的打印機設備。這兩項若是在從此的工做中不須要,能夠手動刪除。

[root@zhangjh ~]# vim /etc/samba/smb.conf
[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

第4步:重啓Samba 並清空iptables防火牆,而後就能夠檢驗配置效果了。

[root@zhangjh ~]# systemctl restart smb
[root@zhangjh ~]# systemctl enable smb
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
[root@zhangjh ~]# iptables -F
[root@zhangjh ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

Windows掛載共享

如今能夠在共享目錄建立文件以及文件夾,能夠修改文件,刪除文件的操做。

Linux掛載共享

 linux客戶端安裝支持文件共享服務的軟件包(cifs-utils)。

[root@zhangjh ~]# yum install cifs-utils -y

在Linux客戶端,按照Samba服務的用戶名、密碼、共享域的順序將相關信息寫入到一個認證文件中。

爲了保證不被其餘人隨意看到,最後把這個認證文件的權限修改成僅root管理員纔可以讀寫:

[root@zhangjh ~]# vim auth.smb
username=jianghua
password=password
domain=MYGROUP
[root@zhangjh ~]# chmod -Rf 600 auth.smb

在Linux客戶端上建立一個用於掛載Samba服務共享資源的目錄,並把掛載信息寫入到/etc/fstab文件中,以確保共享掛載信息在服務器重啓後依然生效:

[root@zhangjh ~]# mkdir /database
[root@zhangjh ~]# vim /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Sun May  6 05:50:56 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root   /                       xfs     defaults        1 1
UUID=d33701cc-d80c-40b5-aa87-c07011414e1d /boot                   xfs     defaults        1 2
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
#/dev/md0 /raid_mount ext4 defaults 0 0
#/dev/storage/zjh_dir /root/linshiceshi ext4 defaults 0 0
/dev/cdrom /media/cdrom iso9660 defaults 0 0
//192.168.38.251/database /database cifs credentials=/root/auth.smb 0 0
[root@zhangjh ~]# mount -a

Linux客戶端成功地掛載了Samba服務的共享資源。

進入到掛載目錄/database後就能夠看到Windows系統訪問Samba服務程序時留下來的文件了(即文件1111.txt)。也能夠對文件進行編輯,刪除操做。

[root@zhangjh ~]# df -h
Filesystem                 Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root       18G  3.1G   15G  18% /
devtmpfs                   909M     0  909M   0% /dev
tmpfs                      918M   80K  918M   1% /dev/shm
tmpfs                      918M  8.9M  909M   1% /run
tmpfs                      918M     0  918M   0% /sys/fs/cgroup
/dev/sr0                   3.5G  3.5G     0 100% /media/cdrom
/dev/sda1                  497M  119M  379M  24% /boot
//192.168.38.251/database   18G  3.1G   15G  18% /database
[root@zhangjh ~]# cd /database/
[root@zhangjh database]# ls
新建文件夾
[root@zhangjh database]# cd 新建文件夾/
[root@zhangjh 新建文件夾]# ls
1111.txt
[root@zhangjh 新建文件夾]# cat 1111.txt 
111111
[root@zhangjh 新建文件夾]# 

 

 

 

 

NFS網絡文件系統

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

安裝NFS軟件包:

[root@zhangjh ~]# yum install nfs-utils -y

第1步:清空NFS服務器上面iptables防火牆的默認策略,以避免默認的防火牆策略禁止正常的NFS共享服務。

[root@zhangjh ~]# iptables -F
[root@zhangjh ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

第2步:在NFS服務器上創建用於NFS文件共享的目錄,並設置足夠的權限確保其餘人也有寫入權限。

[root@zhangjh ~]# mkdir /nfsfile
[root@zhangjh ~]# chmod -Rf 777 /nfsfile/
[root@zhangjh ~]# echo "welcome to nfspublic files" > /nfsfile/readme

第3步:NFS服務程序的配置文件爲/etc/exports,默認狀況下里面沒有任何內容。咱們能夠按照「共享目錄的路徑 容許訪問的NFS客戶端(共享權限參數)」的格式,定義要共享的目錄與相應的權限

  用於配置NFS服務程序配置文件的參數:

參數 做用
ro 只讀
rw 讀寫
root_squash 當NFS客戶端以root管理員訪問時,映射爲NFS服務器的匿名用戶
no_root_squash 當NFS客戶端以root管理員訪問時,映射爲NFS服務器的root管理員
all_squash 不管NFS客戶端使用什麼帳戶訪問,均映射爲NFS服務器的匿名用戶
sync 同時將數據寫入到內存與硬盤中,保證不丟失數據
async 優先將數據保存到內存,而後再寫入硬盤;這樣效率更高,但可能會丟失數據
[root@zhangjh ~]# vim /etc/exports
/nfsfile 192.168.38.*(rw,sync,root_squash)

第4步:啓動和啓用NFS服務程序。

   因爲在使用NFS服務進行文件共享以前,須要使用RPC(Remote Procedure Call,遠程過程調用)服務將NFS服務器的IP地址和端口號等信息發送給客戶端。所以,在啓動NFS服務以前,還須要順帶重啓並啓用rpcbind服務程序,並將這兩個服務一併加入開機啓動項中。

[root@zhangjh ~]# systemctl restart rpcbind.service 
[root@zhangjh ~]# systemctl enable rpcbind.service 
[root@zhangjh ~]# systemctl start nfs-server
[root@zhangjh ~]# systemctl enable nfs-server
ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/nfs.target.wants/nfs-server.service'

第5步:linux客戶端配置

使用showmount命令(以及必要的參數)查詢NFS服務器的遠程共享信息,其輸出格式爲「共享的目錄名稱 容許使用客戶端地址」。

      showmount命令中可用的參數以及做用:

參數 做用
-e 顯示NFS服務器的共享列表
-a 顯示本機掛載的文件資源的狀況NFS資源的狀況
-v 顯示版本號
[root@zhangjh ~]# showmount -e 192.168.38.251
Export list for 192.168.38.251:
/nfsfile 192.168.38.*

而後在NFS客戶端建立一個掛載目錄。使用mount命令並結合-t參數,指定要掛載的文件系統的類型,並在命令後面寫上服務器的IP地址、服務器上的共享目錄以及要掛載到本地系統(即客戶端)的目錄。

[root@zhangjh ~]# mkdir /nfsfile
[root@zhangjh ~]# mount -t nfs 192.168.38.251:/nfsfile/ /nfsfile/

 能夠訪問服務端的共享文件了

[root@zhangjh ~]# cd /nfsfile/
[root@zhangjh nfsfile]# ls
readme
[root@zhangjh nfsfile]# cat readme 
welcome to nfspublic files

若是但願NFS文件共享服務能一直有效,則須要將其寫入到fstab文件中:

[root@zhangjh ~]# vim /etc/fstab 
# /etc/fstab
# Created by anaconda on Sun May  6 05:50:56 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root   /                       xfs     defaults        1 1
UUID=d33701cc-d80c-40b5-aa87-c07011414e1d /boot                   xfs     defaults        1 2
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
#/dev/md0 /raid_mount ext4 defaults 0 0
#/dev/storage/zjh_dir /root/linshiceshi ext4 defaults 0 0
/dev/cdrom /media/cdrom iso9660 defaults 0 0
192.168.38.251:/nfsfile /nfsfile nfs defaults 0 0

  

 

AutoFs自動掛載服務

autofs服務程序是一種Linux系統守護進程,當檢測到用戶試圖訪問一個還沒有掛載的文件系統時,將自動掛載該文件系統。

安裝autofs:

[root@zhangjh ~]# yum install autofs -y

 在autofs服務程序的主配置文件中須要按照「掛載目錄 子配置文件」的格式進行填寫。

[root@zhangjh ~]# vim /etc/auto.master
#
# Sample auto.master file
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# For details of the format look at autofs(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
#
+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

在子配置文件中,應按照「掛載目錄 掛載文件類型及權限 :設備名稱」的格式進行填寫。

例如,要把光盤設備掛載到/media/iso目錄中,可將掛載目錄寫爲iso,而-fstype爲文件系統格式參數,iso9660爲光盤設備格式,ro、nosuid及nodev爲光盤設備具體的權限參數,/dev/cdrom則是定義要掛載的設備名稱。配置完成後再順手將autofs服務程序啓動並加入到系統啓動項中:

[root@zhangjh ~]# vim /etc/iso.misc
iso -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
[root@zhangjh ~]# systemctl start autofs
[root@zhangjh ~]# systemctl enable autofs
ln -s '/usr/lib/systemd/system/autofs.service' '/etc/systemd/system/multi-user.target.wants/autofs.service'

接下來將發生一件很是有趣的事情。咱們先查看當前的光盤設備掛載狀況,確認光盤設備沒有被掛載上,並且/media目錄中根本就沒有iso子目錄。

可是,咱們卻可使用cd命令切換到這個iso子目錄中,並且光盤設備會被當即自動掛載上。咱們也就能順利查看光盤內的內容了。

[root@zhangjh ~]# df -h
df: ‘/media/cdrom’: No such file or directory
Filesystem                 Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root       18G  3.1G   15G  18% /
devtmpfs                   909M     0  909M   0% /dev
tmpfs                      918M   80K  918M   1% /dev/shm
tmpfs                      918M  8.9M  909M   1% /run
tmpfs                      918M     0  918M   0% /sys/fs/cgroup
/dev/sda1                  497M  119M  379M  24% /boot
//192.168.38.251/database   18G  3.1G   15G  18% /database
[root@zhangjh ~]# cd /media/
[root@zhangjh media]# ls
[root@zhangjh media]# cd iso
[root@zhangjh iso]# ls -l
total 812
dr-xr-xr-x.  4 root root   2048 May  7  2014 addons
dr-xr-xr-x.  3 root root   2048 May  7  2014 EFI
-r--r--r--.  1 root root   8266 Apr  4  2014 EULA
-r--r--r--.  1 root root  18092 Mar  6  2012 GPL
dr-xr-xr-x.  3 root root   2048 May  7  2014 images
dr-xr-xr-x.  2 root root   2048 May  7  2014 isolinux
dr-xr-xr-x.  2 root root   2048 May  7  2014 LiveOS
-r--r--r--.  1 root root    108 May  7  2014 media.repo
dr-xr-xr-x.  2 root root 774144 May  7  2014 Packages
dr-xr-xr-x. 24 root root   6144 May  7  2014 release-notes
dr-xr-xr-x.  2 root root   4096 May  7  2014 repodata
-r--r--r--.  1 root root   3375 Apr  1  2014 RPM-GPG-KEY-redhat-beta
-r--r--r--.  1 root root   3211 Apr  1  2014 RPM-GPG-KEY-redhat-release
-r--r--r--.  1 root root   1568 May  7  2014 TRANS.TBL
[root@zhangjh iso]# df -h
df: ‘/media/cdrom’: No such file or directory
Filesystem                 Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root       18G  3.1G   15G  18% /
devtmpfs                   909M     0  909M   0% /dev
tmpfs                      918M   80K  918M   1% /dev/shm
tmpfs                      918M  8.9M  909M   1% /run
tmpfs                      918M     0  918M   0% /sys/fs/cgroup
/dev/sda1                  497M  119M  379M  24% /boot
//192.168.38.251/database   18G  3.1G   15G  18% /database
/dev/sr0                   3.5G  3.5G     0 100% /media/iso
相關文章
相關標籤/搜索