NFS簡介
NFS是一個通過網絡來分享文件的工具;
NFS的學習重點在於權限、用戶身份、RPC程序的理解。
組成部分
NFS:Network File System
可以通過網絡,讓不同設備、不同操作系統,可以彼此分享文件
RPC:Remote Procedure Call
指定每個NFS功能的端口號,並且通知用戶端,來保證用戶可以連接到正確的端口。RPC之所以能知道正確的端口號,是因爲NFS在啓動時會隨機選取幾個端口號,並主動向RPC註冊此端口號,並且RPC是使用111端口來接受此信息。
相關文件
配置文件:/etc/exports
分享目錄完整權限文件:/var/lib/nfs/etab
連接NFS服務器用戶端資料文件:/var/lib/nfs/xtab
NFS的安裝與使用
NFS的安裝
或者
# mount -t iso9660 -o loop CentOS-6.5-i386-bin-DVD1.iso /mnt
# cd /mnt/Packages/
# ls |grep nfs-utils
# rpm -ivh nfs-utils-1.2.3-39.el6.i686.rpm nfs-utils-lib-1.1.5-6.el6.i686.rpm
# ls |grep rpcbind
# rpm -ivh rpcbind-0.2.0-11.el6.i686.rpm
分享目錄配置
# vi /etc/exports
[要分享的目錄] [ip或ip網段] [權限及登錄身份等]
/tmp/sharefolder 192.168.0.1/24(rw,all_squash,anonuid=501,anongid=501)//可以寫多行
ip段可以寫成主機名,主機名可以用通配符"*",來匹配域用戶
共享目錄之後,可以跟多個ip段,用空格分開
權限及登錄身份段可用參數
rw(read & write) ;
ro(read only)
#是否可讀寫,除了此處必須設置外,還限制在分享的文件或目錄本身的權限
sync(內存和硬盤同步寫入) ;
async(暫存於內存,而不是直接寫入硬盤);
no_root_squash(如使用NFS的是root用戶,則保留文檔的root權限);
root_squash(如使用NFS的是root用戶,會把root更改成nfsnobody用戶,安全性比較好);
all_squash(不論使用NFS的是誰,都會把其更改爲nfsnobody用戶);
anonuid(指定取代root_squash或all_squash所使用匿名用戶的uid);
anongid(指定取代root_squash或all_squash所使用匿名用戶的gid)。
#指定的uid和gid必須是本機系統裏所存在的
擴展 nfsnobody
# cat /etc/passwd|grep nfsnobody
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin #專門的匿名NFS用戶
NFS的啓動與相關命令
# service rpcbind start && service nfs start
或者
# /etc/init.d/rpcbind start && /etc/init.d/nfs start
如何讓設定好的共享目錄啓動
# exportfs -arv
showmount -e localhost
#exportfs是掛載及卸載共享目錄的命令
#-a是掛載或卸載全部/etc/exports中設定的目錄
#-r重新掛載/etc/exports中設定的目錄,並刷新/var/lib/nfs/xtab中的內容
#-v顯示共享目錄的信息
#showmount是查看NFS共享目錄的命令
#-e顯示指定主機的NFS共享目錄狀態
4 客戶端使用NFS
查詢
# showmount -e 192.168.1.110
掛載
# mount -t nfs 192.168.0.26:/tmp/sharefolder /mnt/nfs
#在server端更改共享目錄權限爲766,沒有執行權限
#在server端更改共享目錄權限爲755,沒有寫權限
mount 選項
-t vfstype 指定文件系統的類型 常用類型有:
光盤或光盤鏡像:iso9660
DOS fat16文件系統:msdos
Windows 9x fat32文件系統:vfat
Windows NT ntfs文件系統:ntfs
Mount Windows文件網絡共享:smbfs
UNIX(LINUX) 文件網絡共享:nfs
-o options 主要用來描述設備或檔案的掛接方式。常用的參數有:
loop:用來把一個文件當成硬盤分區掛接上系統
ro:採用只讀方式掛接設備
rw:採用讀寫方式掛接設備
iocharset:指定訪問文件系統所用字符集
nolock nfs mount 默認選項包括文件鎖,依賴於portmap提供的動態端口分配功能,在進行嵌入式環境時,如果報錯需要加上-o nolock 選項
設置自動掛載
# vim /etc/rc.local
mount -t nfs 192.168.0.26:/tmp/sharefolder /mnt/nfs
或者
# vim /etc/fstab
192.168.1.110:/tmp /mnt nfs nolock,rw 0 0
# mount -a
查看掛載的列表
mount -l