Linux:SAMBA共享、NFS共享、Autofs自動掛載


SAMBA、NFS共享區別

 NFS開源文件共享程序:NFS(NetworkFile System)是一個能夠將多台Linux的遠程主機數據掛載到本地目錄的服務,屬於輕量級的文件共享服務,不支持Linux與 Windows系統間的文件共享。

Samba服務程序是一款基於SMB協議並由服務端和客戶端組成的開源文件共享軟件,實現了Linux與Windows系統間的文件共享。也可以實現Linux與Linux之間的共享服務。
SMB(Server Messages Block)協議:實現局域網內文件或打印機等資源共享服務的協議。

SAMBA共享服務配置

samba服務器:192.168.10.10    Linux客戶端:192.168.10.20    Windows客戶端:192.168.10.30 
Samba配置文件說明:

            服務器端安裝Samba服務:yum install samba -y
            瀏覽配置文件:cat/etc/samba/smb.conf 過濾掉注釋
            mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
          cat /etc/samba/smb.conf.bak | grep -v "#" | grep -v ";" | grep -v "^$" > /etc/samba/smb.conf

[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:需由SMB服務驗證來訪主機提供的口令后才可建立訪問,更加的安全。
  #server:使用獨立的遠程主機驗證來訪主機提供的口令(集中管理帳號)。
  #domain:使用PDC來完成驗證
  passdb backend = tdbsam #定義用戶后台的類型,共有3種。
  #smbpasswd:使用SMB服務的smbpasswd命令給系統用戶設置SMB密碼。
  #tdbsam:創建數據庫文件並使用pdbedit建立SMB獨立的用戶。
  #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
標准的Samba共享參數是這樣的:
參數 作用
[linuxprobe] 共享名稱為linuxprobe
comment = Do not arbitrarily modify the database file 警告用戶不要隨意修改數據庫
path = /home/database 共享文件夾在/home/database
public = no 關閉所有人可見
writable = yes 允許寫入操作

----------------------------------------------Linux服務器與Windows之間的共享實驗(user口令驗證)-------------------------------------

 第1步:更改為user驗證模式,后台用戶類型為tdbsam

security = user
passdb backend = tdbsam

第2步:創建共享文件夾:
mkdir /database


第2步:描述共享文件夾信息。

SMB服務主配置文件的最下面追加共享文件夾的配置參數:

[database]
comment = Do not arbitrarily modify the database file
path = /database
public = no
writable = yes

 第3步:創建SMB服務獨立的帳號。
 

SMB服務配置文件中密碼數據庫后台類型為"tdbsam",所以這個帳戶和口令是Samba服務的獨立帳號信息,我們需要使用pdbedit命令來創建SMB服務的用戶數據庫
 pdbedit命令用於管理SMB服務的帳戶信息數據庫,格式為:“pdbedit [選項] 帳戶”。

 

參數 作用
-a 用戶名 建立Samba用戶
-x 用戶名 刪除Samba用戶
-L 列出用戶列表
-Lv 列出用戶詳細信息的列表

先建立系統用戶smbuser,再samba用戶映射到系統用戶:
useradd smbuser
此系統用戶提升為SMB用戶:
[root@linuxprobe ~]# pdbedit -a -u smbuser
 
new password:設置SMB服務獨立的密碼
retype new password:
Unix username: smbuser
NT username:
Account Flags: [U ]
User SID: S-1-5-21-4146456071-3435711857-2069708454-1000
Primary Group SID: S-1-5-21-4146456071-3435711857-2069708454-513
Full Name:
Home Directory: \\linuxprobe\smbuser
HomeDir Drive:
Logon Script:
Profile Path: \\linuxprobe\smbuser\profile
Domain: LINUXPROBE
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: Sat, 11 Jul 2015 18:27:04 CST
Password can change: Sat, 11 Jul 2015 18:27:04 CST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

第4步:允許防火牆和SELinux設置:命令
iptables -F
service iptables save
chown -Rf smbuser:smbuser /database
setsebool -P samba_enable_home_dirs on
semanage fcontext -a -t samba_share_t /database
restorecon -Rv /database/
第5步:驗證
 圖片

-------------------------------------------------------------Linux與Linux之間的共享---------------------------------------------------------------

第1步:在客戶端安裝cifs-utils軟件包:
 
[root@linuxprobe ~]# yum install -y cifs-utils
 
第2步:創建掛載目錄:
 
[root@linuxprobe ~]# mkdir /database

第3步:在root家目錄創建認證文件(依次為SMB用戶名、SMB用戶密碼、SMB共享域):
 
[root@linuxprobe ~]# vim auth.smb
username=smbuser
password=redhat
domain=MYGROUP
此文件太重要了,權限應該給小一些:
[root@linuxprobe ~]# chmod -Rf 600 auth.smb
 
第4步:配置其掛載信息(內容依次為遠程共享信息、本地掛載目錄、文件系統類型、認證文件以及開機自檢選項):
 
[root@linuxprobe ~]# vim /etc/fstab
//192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0
 
第5步:使用mount命令的-a參數掛載所有在fstab文件中定義的文件信息:
 
[root@linuxprobe ~]# mount -a
成功掛載Samba的共享目錄(能夠看到共享文件了):

第6步:驗證
[root@linuxprobe ~]# cat /database/Memo.txt
i can edit it .

 NFS共享

NFS( Network  Files  System)即網絡文件系統,使用TCP/IP協議,依賴於RPC服務與外部通信,所以必需保證RPC服務能夠正常注冊服務的端口信息才能正常使用NFS服務。
  第1步:創建NFS服務端的共享目錄。
     
清空iptables iptables -F service iptables save
     創建nfsfile共享目錄:mkdir /nfsfile
     為共享目錄設置權限(讓其他人可以有寫入權限):chmod -Rf 777 /nfsfile
     寫入一個文件,用於NFS客戶端讀取:echo "welcome to linuxprobe.com" > /nfsfile/readme
     NFS服務端配置文件是"/etc/exports"
     [root@linuxprobe ~]# vim /etc/exports

     //格式為:共享目錄的絕對路徑 允許訪問NFS資源的客戶端(權限參數)
     /nfsfile 192.168.10.*(rw,sync,root_squash)

  NFS配置共享的參數有:

參數 作用
ro 只讀默認
rw 讀寫模式
root_squash 當NFS客戶端使用root用戶訪問時,映射為NFS服務端的匿名用戶。
no_root_squash 當NFS客戶端使用root用戶訪問時,映射為NFS服務端的root用戶。
all_squash 不論NFS客戶端使用任何帳戶,均映射為NFS服務端的匿名用戶。
sync 同時將數據寫入到內存與硬盤中,保證不丟失數據。
async 優先將數據保存到內存,然后再寫入硬盤,效率更高,但可能造成數據丟失。


 
第2步:啟動NFS服務端
     
紅帽RHEL7系統中RPC服務已經默認運行(active)了,所以無需再配置RPC服務啦
     直接啟動NFS服務端 
     systemctl start nfs-server
     systemctl enable nfs-server
第3步:配置NFS客戶端
     
查詢遠程NFS服務端中可用的共享資源:(showmount命令用於查詢NFS服務端共享信息,格式為:“showmount [參數] [遠程主機]

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

 [root@linuxprobe ~]# showmount -e 192.168.10.10
 Export list for 192.168.10.10:
/nfsfile (everyone)

 創建本地掛載目錄: mkdir /nfsfile
掛載:  mount -t nfs 192.168.10.10:/nfsfile /nfsfile
 查看到剛剛寫入文件內容:cat /nfsfile/readme

 開機后自動將NFS資源掛載到本地,可以通過修改fstab文件來實現
 [root@linuxprobe ~]# vim /etc/fstab
192.168.10.10:/nfsfile /nfsfile nfs defaults 0 0

Autofs自動掛載

AutoFs服務與Mount/Umount命令不同之處在於它是一種守護進程,只有檢測到用戶試圖訪問一個尚未掛載的文件系統時才自動的檢測並掛載該文件系統,換句話說,將掛載信息填入/etc/fstab文件后系統將在每次開機時都自動將其掛載,而運行AutoFs后則是當用戶需要使用該文件系統了才會動態的掛載,節約網絡與系統資源。
 
模擬訓練:每次進入/media/iso目錄時都會自動掛載鏡像。
 
NFS服務端RHEL7192.168.10.10
NFS客戶端RHEL7192.168.10.20
 
1、安裝autofs服務:
 
    [root@linuxprobe ~]# yum install autofs -y
 
2、啟動autofs服務並加入到開機啟動項中:
 
    [root@linuxprobe ~]# systemctl start autofs
    [root@linuxprobe ~]# systemctl enable autofs
    ln -s '/usr/lib/systemd/system/autofs.service' '/etc/systemd/system/multi-user.target.wants/autofs.service'
3、修改autofs主配置文件(格式為:掛載目錄 映射配置文件):
 
    [root@linuxprobe ~]# vim /etc/auto.master
    /media /etc/iso.misc
4、編輯掛載配置參數文件(映射文件):
 
[root@linuxprobe ~]# vim /etc/iso.misc
iso   -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom

5、重啟autofs服務:
[root@linuxprobe ~]# systemctl restart autofs

6、驗證:
進入自動掛載目錄中:
[root@linuxprobe ~]# cd /media/iso
查看當前目錄下的文件:
[root@linuxprobe iso]# ls
addons images Packages RPM-GPG-KEY-redhat-release
EFI isolinux release-notes TRANS.TBL
EULA LiveOS repodata
GPL media.repo RPM-GPG-KEY-redhat-beta


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM