Centos
Autofs 問題掛載 NFS 主目錄 (CentOS 7.4)
我在讓 autofs 通過 NFS 掛載使用者的主目錄時遇到問題。我有一個 NFS 客戶端 (client.home) 和一個 NFS 伺服器 (server.home)。兩個系統都是 CentOS 7.4。SELinux 在兩個系統上都以許可模式執行。誰能指出我正確的方向,以便我可以自動掛載使用者的主目錄?
伺服器上的 NFS 導出表
[root@server ~]# exportfs -v /home/tim client.home(rw,sync,wdelay,hide,no_subtree_check,sec=sys,secure,root_squash,no_all_squash)
客戶端可以看到這些導出
[root@client ~]# showmount -e server Export list for server: /home/tim client.home
有兩個使用者。一個在客戶端,一個在伺服器上。它們都具有相同的名稱和 UID。但是,使用者的主目錄僅位於
server.home
.[tim@server ~]$ id uid=1001(tim) gid=1001(tim) groups=1001(tim) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 -bash-4.2$ hostname client.home -bash-4.2$ id uid=1001(tim) gid=1001(tim) groups=1001(tim) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
該目錄應該為使用者自動掛載
tim
。client.home
不幸的是,這似乎沒有發生。[root@client ~]# su - tim -bash-4.2$ id uid=1001(tim) gid=1001(tim) groups=1001(tim) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 -bash-4.2$ cd /home/tim -bash: cd: /home/tim: No such file or directory -bash-4.2$ ls /home vagrant
儘管如此,我相信我已經
auto.master
正確設置了我的文件。[root@client ~]# cat /etc/auto.master # # Sample auto.master file # This is a 'master' automounter map and it has the following format: # mount-point [map-type[,format]:]map [options] # For details of the format look at auto.master(5). # /misc /etc/auto.misc # # NOTE: mounts done from a hosts map will be mounted with the # "nosuid" and "nodev" options unless the "suid" and "dev" # options are explicitly given. # /net -hosts # # Include /etc/auto.master.d/*.autofs # The included files must conform to the format of this file. # +dir:/etc/auto.master.d # # Include central master map if it can be found using # nsswitch sources. # # Note that if there are entries for /net or /misc (as # above) in the included master map any keys that are the # same will not be seen as the first read key seen takes # precedence. # +auto.master /home /etc/auto.home
還有我的內容
/etc/auto.home
[root@client /]# cat /etc/auto.home * nfs4,rw &:/home/&
我希望我應該能夠簡單地
cd
進入使用者的主目錄。相反,當autofs.service
執行時,我什至無法在/home
.[root@client /]# systemctl is-active autofs active [root@client /]# touch /home/test touch: cannot touch ‘/home/test’: Permission denied [root@client home]# ll -d /home drwxr-xr-x. 2 root root 0 Sep 16 02:04 /home [root@client /]# systemctl stop autofs [root@client /]# systemctl is-active autofs inactive [root@client /]# touch /home/test [root@client /]# ls /home test vagrant
編輯:
我可以手動掛載 NFS 共享。另外,我很確定之前的奇怪權限問題是由於
root_squash
我在/etc/exports
文件中設置的選項造成的。[root@client ~]# mount -t nfs4 -o rw server.home:/home/tim /mnt [root@client ~]# df -t nfs4 Filesystem 1K-blocks Used Available Use% Mounted on server.home:/home/tim 39269760 1192448 38077312 4% /mnt [root@client ~]# ll -d /mnt drwx------. 2 tim tim 86 Sep 16 18:51 /mnt
我想到了。
/etc/auto.master
當我應該在客戶端上進行編輯時,我正在伺服器上進行編輯。也就是說,在客戶端上添加以下內容/etc/auto.master
/home/ /etc/auto.home
仍然在客戶端上,創建
/etc/auto.home
文件並將以下內容添加到其中* -nfs4,rw &:/home/&
最後重啟 autofs(在客戶端)
$ systemctl restart autofs
那應該這樣做。需要注意的是,客戶端上的使用者應該與伺服器上的使用者相同(相同的使用者名,相同的 UID)。這通常使用 LDAP 來完成。此外,主目錄應該只存在於伺服器上,因為 autofs 會在客戶端上為您創建掛載點。