Configurei o FreeIPA como software IDM para minha rede e configurei com sucesso um servidor NFS com reconhecimento de Kerberos e clientes NFS com reconhecimento de Kerberos. Quando um usuário faz login em uma máquina, seu diretório de usuário no servidor NFS é montado automaticamente via autofs de nfs:/srv/nfs/home/userdir
para /home/userdir
na máquina local.
Estou enfrentando o problema de que, quando preciso criar um usuário local em uma máquina, como o usuário git, não posso, como usuário root , criar um novo diretório inicial para o usuário git em /home/git
, porque dizuseradd: cannot create directory /home/git
A configuração do meu mapa auto.home é a seguinte: * nfs:/srv/nfs/home/&
e quando eu logo como qualquer usuário, apenas o diretório inicial do usuário é montado em /home
E meu mapa auto.master tem a seguinte entrada:/home auto.home
a saída de mount
é a seguinte:
auto.home on /home type autofs (rw,relatime,fd=6,pgrp=651,timeout=300,minproto=5,maxproto=5,indirect,pipe_ino=15731)
nfs:/srv/nfs/home/userdir on /home/userdir type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=krb5,clientaddr=10.110.29.100,local_lock=none,addr=10.110.29.107)
Omiti informações desnecessárias sobre outros sistemas de arquivos e dispositivos.
getfacl para o diretório inicial retorna:
file: home
owner: root
group: root
user::rwx
group::r-x
other::r-x
Agora, minha pergunta é: essa configuração está impedindo que minha conta raiz local crie um diretório inicial local em minha máquina?
Sim, sua configuração atual impede que você crie um diretório pessoal local para um usuário local em
/home
... porque você definiu/home
como sendo um mapa de montagem automática de pontos de montagem NFS. Como o NFS reconhece o Kerberos, o usuário precisaria de pelo menos um keytab do Kerberos para acessar um diretório inicial montado pelo NFS, e esse keytab seria armazenado... no diretório inicial do usuário. Isso parece ser um problema de ovo/galinha.Mas o diretório inicial de um usuário local chamado
git
não precisa estar em/home
: poderia estar em/home.local/git
, por exemplo.Como você marcou esta pergunta com
rhel
e RHEL usa SELinux por padrão, provavelmente precisará saber que terá que aplicar rótulos SELinux apropriados ao diretório inicial real e ao diretório pai .Se você deseja tornar
git
o diretório inicial de/home.local/git
, você precisará primeiro preparar os rótulos do SELinux da seguinte maneira:Em outras palavras,
/home.local
irá obterhome_root_t
, cada diretório imediatamente sob ele obteráuser_home_dir_t
, e todos os arquivos e diretórios mais profundos do que isso obterãouser_home_t
. Já existem regras de rotulagem semelhantes para o arquivo/home
.Depois disso, você pode criar o
git
usuário:Ou se o usuário já existe e apenas a criação do diretório inicial falhou, você pode modificar o caminho do diretório inicial e criar manualmente o diretório inicial real: