Problemas do Autofs Montando diretórios iniciais do NFS (CentOS 7.4) [closed]

1

Estou tendo problemas para obter o autofs para montar os diretórios pessoais do usuário por meio do NFS. Eu tenho um cliente NFS (client.home) e um servidor NFS (server.home). Ambos os sistemas são o CentOS 7.4. O SELinux está sendo executado no modo permissivo em ambos os sistemas. Alguém pode me apontar para a direção certa para que eu possa automontar os diretórios pessoais do usuário?

Tabela de Exportação NFS no servidor

[root@server ~]# exportfs -v
/home/tim       
client.home(rw,sync,wdelay,hide,no_subtree_check,sec=sys,secure,root_squash,no_all_squash)

O cliente pode ver essas exportações

[root@client ~]# showmount -e server
Export list for server:
/home/tim client.home

Existem dois usuários. Um no cliente e outro no servidor. Ambos têm o mesmo nome e UID. No entanto, o diretório inicial do usuário está localizado apenas em 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

Esse diretório deve ser montado automaticamente para o usuário tim on client.home . Infelizmente, isso não parece acontecer.

[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

Mesmo assim, acredito ter configurado meu arquivo auto.master corretamente.

[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

E o conteúdo do meu /etc/auto.home

[root@client /]# cat /etc/auto.home 
*   nfs4,rw     &:/home/&

Eu esperaria que eu fosse capaz de simplesmente cd no diretório inicial do usuário. Em vez disso, quando o autofs.service está em execução, não consigo nem criar arquivos em /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

EDITAR:

Eu posso montar manualmente os compartilhamentos NFS. Além disso, tenho certeza de que os problemas de permissões estranhos de antes eram devidos à opção root_squash que eu defini no arquivo /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
    
por Timothy Pulliam 16.09.2017 / 04:15

1 resposta

1

Eu percebi isso. Eu estava editando o /etc/auto.master no servidor quando deveria estar fazendo isso no cliente. Ou seja, no cliente, adicione o seguinte a /etc/auto.master

/home/    /etc/auto.home

Ainda no cliente, crie o arquivo /etc/auto.home e adicione o seguinte a ele

*    -nfs4,rw    &:/home/&

Finalmente reinicie o autofs (no cliente)

$ systemctl restart autofs

E isso deve ser feito. É importante observar que o usuário no cliente deve ser o mesmo que no servidor (mesmo nome de usuário, mesmo UID). Isso geralmente é feito usando o LDAP. Além disso, o diretório inicial deve existir apenas no servidor, pois o autofs criará o ponto de montagem no cliente para você.

    
por 18.09.2017 / 19:59