Linux

通過更改預設所有者掛載 NFS 文件系統

  • December 11, 2014

我想用of掛載一個NFS文件系統。怎麼做?user/group ownership``<admin>

mkdir /cert
chown admin.admin /cert
mount -t nfs 192.168.2.149:/portalweb /cert/

在 NFS 伺服器上使用非互動式 shell 創建使用者和組 admin,假設 admin 使用者和組存在於 nfs 客戶端中。非互動式 shell 選項將阻止 NFS 客戶端的管理員訪問 NFS 伺服器。它可以工作,因為 nfs 將伺服器的 uid 和 gid 與其客戶端映射,因此只要管理員使用者和組的伺服器和客戶端之間的 uid 和 gid 匹配,分配給導出目錄的任何文件權限都將保持不變。ACL 是一個特定於 nfsv3 的選項。

記下客戶端電腦中的 admin uid 和 gid(主要),並使用它在 NFS 伺服器中創建一個帳戶。例如客戶端電腦中管理員的 uid|gid = 502

NFS 伺服器:

作為根使用者:

useradd -u 502 -s /sbin/nologin admin
mkdir /portalweb
chmod 770 /portalweb
chown admin /portalweb
chgrp admin /portalweb
ls -ld /portalweb
getfacl /portalweb

您可以通過 /portalweb 目錄中的 setgid 位允許管理員組成員之間進行協作。

vim /etc/exports
    /portalweb 192.168.2.149(ro,sync,root_squash)
:wq

exportfs -rv

NFS 客戶端:

作為根使用者:

mkdir /cert
vim /etc/fstab
192.168.2.149:/portalweb /cert nfs ro,nfsvers=4 0 0
:wq

mount -a
df -h -F nfs
mount | grep nfs    
     192.168.1.71:/exports on /cert type nfs (r0,nfsvers=4,addr=192.168.2.49,clientaddr=192.168.2.50)

root 使用者無法訪問 /cert 中的文件,因為 root 已被壓縮為使用者和組:“nobody”(請參閱 NFS 伺服器上的 /etc/exports)。但預設情況下,root 有權在客戶端機器上掛載 NFS 導出。如果您更喜歡使用 autofs 服務,像 admin 這樣的普通使用者沒有權限使用 autofs 服務設置自動掛載 NFS 目錄,除非他們像 sudo 使用者一樣被賦予了特殊的管理員權限。

ls -ld /cert 
     drwxrwx---. 12 admin admin 4096 Dec 10 /cert
ls /cert
     ls: cannot open directory /cert: Permission denied
su - admin

作為管理員使用者(只有管理員使用者(或管理員組,如果正確配置了客戶端和伺服器之間匹配的 uid)可以訪問 /cert 內容):

ls /cert

與任何其他使用者一樣:

ls /cert
  ls: cannot open directory /cert: Permission denied

引用自:https://unix.stackexchange.com/questions/172514