環境:suse12主機 兩台服務器之間搭建配置nfs,a為Server 共享/data/目錄、b為Client
問題描述:正常配置客戶端使用如下命令掛在后root無寫入權限
# mount -o rw -t nfs 172.20.10.5:/data/ /mnt/nfs
命令將網絡文件mount到本地。執行完成之后,目錄是可以訪問了,但無權限寫入
服務端配置文件內容
# vi /etc/exports
共享目錄 ip(rw)
分析:
用戶對目錄的權限受兩方面約束:NFS認證權限、Posix權限;
NFS權限: NFS服務器器中exports中配置額讀寫、只讀權限
Posix權限:發現exports目錄權限中,參數no_root_squash的其作用是:NFS客戶端使用共享目錄的用戶,如果是root 的話,所有的操作均在服務器端映射為root用戶,擁有共享目錄的root權限!
默認情況使用的是相反參數root_squash:在登入 NFS 主機export目錄的使用者如果當root時,那么這個使用者的權限將被壓縮成為匿名使用者,通常他的 UID 與 GID 都會變成 nobody 那個身份。
因為客戶端是使用root登錄的,自然權限被壓縮為nobody了,所以導致客戶端root賬號無權限寫入。
解決方法:
將配置信息改為:
# vi /etc/exports
共享目錄 ip(rw,no_root_squash)
不過可能有點不安全,但問題是解決了,大家自行考慮。