1 實驗方案
使用2臺RHEL6.4虛擬機,其中一臺作爲NFS共享服務器(192.168.100.1)、另外一臺作爲測試用的NFS客戶機(192.168.100.2)
2.實現
2.1.配置NFS共享服務器。
1)安裝軟件包及創建共享目錄。
[root@nfs-server ~]# rpm -q rpcbind nfs-utils
rpcbind-0.2.0-11.el6.x86_64
nfs-utils-1.2.3-36.el6.x86_64
[root@nfs-server ~]# mkdir /nfstest
[root@nfs-server ~]# echo "test file" > /nfstest/nfs.txt //創建測試文件
[root@nfs-server ~]# ls -ld /nfstest //查看測試目錄權限
drwxr-xr-x. 2 root root 4096 Apr 14 07:18 /nfstest
2)修改nfs主配置文件/etc/exports,添加/nfstest共享設置。
[root@nfs-server ~]# vim /etc/exports
[root@nfs-server ~]# cat /etc/exports
/nfstest 192.168.100.2(rw,sync,no_root_squash) //設置爲只對192.168.100.2用戶讀寫權限,並同步寫入內存與硬盤,開放客戶端使用root身份
3)啓用NFS相關服務程序。
rpcbind和nfs服務均啓動成功後,執行showmount -e可查看本機當前已發佈的共享資源列表:
[root@nfs-server ~]# service rpcbind start
[root@nfs-server ~]# service nfs start
[root@nfs-server ~]# chkconfig rpcbind on //設置開機啓動服務
[root@nfs-server ~]# chkconfig nfs on
[root@nfs-server ~]# chkconfig --list rpcbind //確保服務開機啓動
rpcbind 0:off1:off2:on3:on4:on5:on6:off
[root@nfs-server ~]# chkconfig --list nfs
nfs 0:off1:off2:on3:on4:on5:on6:off
[root@nfs-server ~]# showmount -e localhost //查看本機發布共享資源----如果查看不到重啓一下系統就可以看到了
Export list for localhost:
/nfstest 192.168.100.2
2.2使用NFS客戶機,查看及訪問/nfstest共享。
1)客戶端也需要安裝相應軟件
[root@client01 ~]# rpm -q rpcbind nfs-utils
rpcbind-0.2.0-11.el6.x86_64
nfs-utils-1.2.3-36.el6.x86_64
2)從客戶機上查看服務器的NFS共享資源列表。
客戶機必須安裝了nfs-utils軟件包,才能使用showmount命令查看NFS資源:
[root@client01 ~]# showmount -e 192.168.100.1
Export list for 192.168.100.1:
/nfstest 192.168.100.2
3)從客戶機192.168.100.2上掛載/nfstest共享,並測試讀寫權限。
[root@client01 ~]# mount 192.168.100.1:/nfstest /mnt //將共享目錄掛載到本地mnt目錄下
[root@client01 ~]# cd /mnt; ls
nfs.txt
[root@client01 mnt]# cd
[root@client01 ~]# cd /mnt;ls
nfs.txt
[root@client01 mnt]# touch aa.txt //測試寫入權限
[root@client01 mnt]# ll
total 4
-rw-r--r--. 1 root root 0 Apr 14 07:40 aa.txt
-rw-r--r--. 1 root root 10 Apr 14 07:18 nfs.txt
4)設置開機後自動掛載NFS共享資源。
[root@client01 ~]# vim /etc/fstab
192.168.100.1:/nfstest /mnt nfs defaults 0 0 //文件類型爲nfs
[root@client01 ~]# umount /mnt
[root@client01 ~]# mount -a
[root@client01 ~]# mount | tail -n 1
192.168.100.1:/nfsteston /mnt type nfs (rw,vers=4,addr=192.168.100.1,clientaddr=192.168.100.2) //開機自動掛載成功
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
/etc/exports
在此空文件中添加需要共享的目錄,主要參數有
ro 只讀
rw 可讀可寫
root_squash代表客戶端以nfsnobody用戶掛載,默認不寫就有
no_root_squash 代表客戶端以root用戶掛載
sync 同步
async 異步
#vim
/etc/exports
/share/iso *(ro) --把/share/iso 共享給*(代表所有IP) ro (代表只讀)
/share/iso *(rw) --rw代表可讀可寫
/share/iso 10.10.10.0/24(ro) --只共享給10.10.10的網段的計算機訪問
/share/iso 10.10.10.0/255.255.255.0(ro)
/share/iso 10.10.10.10/255.255.255.255(ro) --定義只10.10.10.10這臺計算機可以訪問
/share/iso 10.10.10.10(ro)
/share/iso 10.10.10.10/32(ro)10.10.10.254/32(rw) --定義只有10和254這兩臺可以訪問
nfs共享的權限
(1)客戶端掛載目錄的權限爲服務端共享目錄的權限
(2)nfs服務共享目錄的默認權限規定是以nfsnobody這個用戶來掛載,查看/etc/passwd可以看到
nfsnobody:x:65534:65534:Anonymous NFSUSEr:/var/lib/nfs:/sbin/nologin
注意:如果做了服務的話,權限要由服務的權限+系統的權限合起來生效
也就是說,客戶端是否可以訪問,需要防火牆允許,服務允許,系統權限允許,纔可以訪問
(3)詳情如下:
/share/iso *(ro) 默認等於 /share/iso*(ro,root_squash)
--root_squash代表客戶端以nfsnobody用戶掛載
/test *(rw,no_root_squash)
--表示客戶端會以root的身份來掛載服務端的/test目錄
/share/iso 10.10.10.10/32(ro,no_root_squash)10.10.10.254/32(ro,root_squash)
--no_root_squash代表客戶端以root用戶掛載,就算是10對/share/iso有w權限,也不能寫,因爲ro參數確定只讀
/share/iso10.10.10.10/32(rw,anonuid=533,anongid=534) --指定客戶端以uid=533,gid=534掛載,但不要指定一個服務器上面不存在的uid或gid,否則客戶端會以無頭用戶或組來訪問
--修改了/etc/exports以後,要重啓服務使之生效,不用重啓服務,使修改過的配置文件生效
[root@rootbug~]#exportfs -arv --重新讀取/etc/exports文件裏的共享,並導入
-auv --卸載/etc/exports文件裏的共享,別人showmount -e看不到,也掛載不了
from :http://www.linuxidc.com/Linux/2014-05/101165.htm
http://www.linuxidc.com/Linux/2013-09/89809.htm