Linux NFS典型例項及許可權詳解
1,首先對NFS服務作簡單的配置,修改主配置檔案,
[root@localhost ~]# vim /etc/exports
/tmp *(rw,no_root_squash,sync)
/public 192.168.0.0/24(rw,sync) *(ro,sync)
/test 192.168.0.100(rw,sync)
/linux *.feifan.com(rw,all_squash,anonuid=40,anongid=40,sync)
2,不要忘了建立目錄哦,並做許可權修改
[root@localhost ~]# mkdir /public
[root@localhost ~]# mkdir /test
[root@localhost ~]# mkdir /linux
[root@localhost ~]# chmod 757 /public/
[root@localhost ~]# chmod 757 /test/
[root@localhost ~]# chmod 757 /linux/
好了,現在可以啟動了,
[root@localhost ~]# service portmap start
[root@localhost ~]# service nfs start
如果不放心是否真的啟動了,可以查詢一下
[root@localhost ~]# netstat -tulnp
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN [root@localhost ~]# rpcinfo -p localhost
程式 版本 協議 埠
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 783 status
100024 1 tcp 786 status
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100021 1 udp 1026 nlockmgr
100021 3 udp 1026 nlockmgr
100021 4 udp 1026 nlockmgr
100021 1 tcp 3953 nlockmgr
100021 3 tcp 3953 nlockmgr
100021 4 tcp 3953 nlockmgr
100011 1 udp 622 rquotad
100011 2 udp 622 rquotad
100011 1 tcp 625 rquotad
100011 2 tcp 625 rquotad
100005 1 udp 626 mountd
100005 1 tcp 629 mountd
100005 2 udp 626 mountd
100005 2 tcp 629 mountd
100005 3 udp 626 mountd
100005 3 tcp 629 mountd
這裡還可以連線觀察
[root@localhost ~]# showmount -e localhost
[root@localhost ~]# tail /var/lib/nfs/etab
重新掛載設定內容
[root@localhost ~]# exportfs -arv
為了安全,不要忘記設定防火牆哦
[root@localhost ~]# iptables -A INPUT -i eth0 -p tcp -s 192.168.0.0/24 --dport 111 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -i eth0 -p udp -s 192.168.0.0/24 --dport 111 -j ACCEPT
也可以使用TCP Wrappers來限制
[root@localhost ~]# vim /etc/hosts.allow
mountd: 192.168.0.0/255.255.255.0
mountd: 192.168.1.0/255.255.255.0
[root@localhost ~]# vim /etc/hosts.deny
mountd: ALL
3,Client的使用
[root@localhost ~]# showmount -e 192.168.0.2 (NFS ip)
[root@localhost ~]# mount -t nfs 192.168.0.2:/public/ /public
如果是開機就掛載了,就必須修改配置檔案
[root@localhost ~]# vim /etc/fstab
192.168.0.2:/public /public nfs nosuid,noexec,nodev,rw,bg,soft,rsize=32768,wsize=32768 0 0
這裡我要說的是,還有一種更好的掛載方法,可以讓Client要使用NFS共享的目錄資料時,才去掛載它,當隔了5分鐘沒有使用的時候,就主動的解除安裝它, 要注意的是,那些 /home/nfs/public 是不需要事先建立的。
[root@localhost ~]# vim /etc/auto.master
/home/nfs /etc/auto.nfs --timeout=60
[root@localhost ~]# mkdir /home/nfs
[root@localhost ~]# vim /etc/auto.nfs
public -rw,bg,soft,rsize=32768,wrise=32768 192.168.0.2:/public
testing -rw,bg,soft,rsize=32768,wrise=32768 192.168.0.2:/test
temp -rw,bg,soft,rsize=32768,wrise=32768 192.168.0.2:/tmp
[root@localhost ~]# /etc/init.d/autofs restart
[root@localhost ~]# cd /home/nfs/public
[root@localhost public]#
竟然進來了,是不是很奇怪啊呵呵
4,例項演示完了,下面詳細分析檔案許可權
情況一:Client 端與 Server 端具有相同的 UID 與帳號
假設我在 192.168.0.100 登入 NFS Server (IP 假設為 192.168.0.2) 主機,並且192.168.0.100 的帳號為 tom 這個身份,同時,在這部 NFS 上面也有 tom 這個帳號,並具有相同的 UID,那麼,
①. 由於 192.168.0.2 這部 NFS 主機的 /tmp 許可權為 -rwxrwxrwt ,所以 192.168.0.100 上面的使用者在 NFS 的/tmp 底下具有存取的許可權,並且寫入的檔案所有人為 tom ;
②. 在 /public 當中,由於我有讀寫的許可權,所以如果在 /public 這個目錄的許可權對於 tom 有開放寫入的話,那麼我就可以讀寫,並且我寫入的檔案所有人是 tom,但是如果 /public 對於 tom 這個使用者並沒有開放可以寫入的許可權時, 那麼我還是沒有辦法寫入檔案,這點請特別注意!
③. 在 /test 當中,我的許可權與 /public 相同,但是還需要 NFS 主機的 /test 對於tom 有讀寫限;
④. 在 /linux 當中,由於使用者身份一定都會被變成 UID=40 這個帳號,所以,這個目錄就必需要針對 UID = 40 的那個帳號名稱,修改他的許可權才行。
情況二:Client 端與 Server 端的帳號不同
假如我在 192.168.0.100 的身份為 tom ,但是 192.168.0.2 這部 NFS 主機卻沒有 tom 這個帳號時,情況會變成怎樣呢?
①. 我在 /tmp 底下還是可以寫入,但是寫入的檔案所有人變成 nobody 了;
②. 我在 /public 裡面是否可以寫入,還需要視 /public 的許可權而定,不過,我的身份被變成 nobody ;
③. /test 與 /public 相同;
④. /linux 底下,我的身份被變成 UID = 40 那個使用者。
情況三:Client 端的身份為 root
假如我在 192.168.0.100 的身份為 root,許可權變成怎樣
①. 我在 /tmp 裡面可以寫入,並且由於 no_root_squash 的引數,改變了預設的 root_squash 設定值,所以在 /tmp 寫入的檔案所有者為 root ;
②. 我在 /public 底下的身份還是被壓縮成為 nobody ,因為預設屬性裡面都具有 root_squash ,所以,如果 /public 有針對 nobody 開放寫入許可權時,那麼我就可以寫入,但是檔案所有人變成 nobody ;
③. /test 與 /home/public 相同;
④. /linux 的情況中,root 的身份也被壓縮成為 UID = 40 的那個使用者。
在我講解例項以及許可權之後,您應該瞭解了很多,如果這一關透過了,那麼你的 NFS 服務掌握的非常好了,在這裡還希望大家提出寶貴意見,給我留言,我的QQ: 303247761
有興趣的朋友可以做這樣一個例項:
假設環境∶
1. 假設我的 Linux 主機為 192.168.0.100 這一部;
2. 預計將 /tmp 以可讀寫,並且不限制使用者身份的方式分享給所有 192.168.0.0/24 這個網域中的所有 Linux 工作站;
3. 預計開放 /home/nfs 這個目錄,使用的屬性為唯讀,可提供除了網域內的工作站外,向外亦提供資料內容;
4. 預計開放 /home/upload 做為 192.168.0.0/24 這個網域的資料上傳目錄,其中,這個 /home/upload 的使用者及所屬群組為 nfs-upload 這個名字,他的 UID 與 GID 均為 210;
5. 預計將 /home/andy 這個目錄僅分享給 192.168.0.50 這部 Linux 主機,以提供該主機上面 andy 這個使用者來使用,也就是說, andy 在 192.168.0.50 及 192.168.0.100 均有帳號,且帳號均為 andy ,所以預計開放 /home/andy 給 andy 使用他的家目錄啦!
http://blog.sina.com.cn/s/blog_5f7d4fe60100dt4k.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/90618/viewspace-1063991/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux許可權詳解Linux
- linux檔案許可權 詳解Linux
- Linux檔案許可權詳解Linux
- JEECG 簡單例項講解許可權控制單例
- linux許可權管理,例項: 建立共享目錄Linux
- Linux 目錄與許可權詳解Linux
- Linux下開發-許可權詳解Linux
- Linux常用檔案許可權命令詳解Linux
- 50個典型電路例項詳解
- 第十二章:Linux中許可權控制例項Linux
- django開發之許可權管理(一)——許可權管理詳解(許可權管理原理以及方案)、不使用許可權框架的原始授權方式詳解Django框架
- XtraBackup工具詳解 Part 4 XtraBackup許可權及配置
- Windows許可權設定詳解Windows
- Linux-許可權管理(ACL許可權)Linux
- linux 檔案許可權 s 許可權和 t 許可權解析Linux
- 許可權框架之Shiro詳解框架
- 【詳解】GrantedAuthority(已授予的許可權)
- Linux許可權Linux
- linux系統644、755、777許可權詳解Linux
- Linux下使用者組、檔案許可權詳解Linux
- nfs 掛載目錄 root 許可權不夠 ?NFS
- Linux 許可權管理之目錄許可權限制Linux
- Linux許可權控制Linux
- linux 許可權 chownLinux
- 許可權管理[Linux]Linux
- Linux ACL 許可權Linux
- 更深入地瞭解 Linux 許可權Linux
- linux chmod命令引數及用法詳解--檔案資料夾許可權設定命令Linux
- Android許可權管理之Permission許可權機制及使用Android
- Android 6.0 執行時許可權詳解Android
- 詳解Oracle的unlimited tablespace系統許可權OracleMIT
- EventBus詳解及簡單例項單例
- Linux的檔案存取許可權和0644許可權Linux
- Linux特殊許可權之suid、sgid、sbit許可權LinuxUI
- linux許可權補充:rwt rwT rws rwS 特殊許可權Linux
- Linux與windows檔案傳輸詳解及例項LinuxWindows
- Android許可權管理之Android 6.0執行時許可權及解決辦法Android
- 2 Day DBA-管理Oracle例項-關於管理帳戶和許可權-SYSDBA和SYSOPER系統許可權Oracle