Como eu digo ao autofs para montar um diretório pessoal diferente do descrito pelo LDAP?

2

Estou usando o CentOS 5.3 para conectar-me ao uso do Kerberos para autenticação e LDAP para informações do usuário. Infelizmente, o diretório inicial para todos os usuários, conforme armazenado no LDAP, é "/". Muito brilhante! Então, isso não funciona. Sem ter acesso ao LDAP, preciso descobrir como forçar os usuários a usar o diretório local "/ home / username" como HOME.

Eu tentei editar o / etc / bashrc, mas parece que é muito tarde para definir o HOME. Além disso, talvez precise editar o shell padrão do usuário, que também é armazenado no LDAP. Não parece que mudar o local / etc / bashrc ajudaria porque pode nem mesmo ser carregado!

Assim, ao usar esses componentes - Kerberos, LDAP, pam, autofs - quando e onde posso especificar o ambiente para meus usuários, se necessário, sobrescrevendo o ambiente definido no LDAP?

TIA !!! 1

    
por hourback 23.06.2009 / 22:42

3 respostas

3

Aviso: feio hackear à frente! A melhor coisa é, obviamente, alterar os dados no servidor LDAP e salvar o problema, mas aqui está:

Adicione a seguinte linha no final de /etc/security/pam_env.conf:

HOME           DEFAULT="/home/@{PAM_USER}"

Isso substituirá a variável $ HOME dos usuários para apontar para o diretório correto. No entanto, isso só é definido após o login, portanto, você ainda receberá um erro de que o login não pode encontrar o diretório inicial dos usuários. A segunda fase do hack feio é adicionar um "cd ~" no final do / etc / profile, que trará seu usuário para o diretório home correto. Espero que nesta fase você possa usar o automount para mapear o diretório home para o servidor NFS correto

    
por 23.06.2009 / 23:53
1

Concordo com Mark, sua melhor aposta seria modificar a entrada no LDAP.

Se você não pode fazer isso, posso sugerir algo que é um grande truque, mas que faria o trabalho:

Em vez de fazer as pesquisas diretamente no LDAP, use nsscache para extrair os dados do usuário do LDAP. Em seguida, no mesmo trabalho cron que atualizará periodicamente o cache, adicione um script que reconfigurará o atributo do diretório inicial dos usuários para o que você deseja. Você também pode fazer isso modificando a fonte nsscache diretamente.

Você pode usar um método semelhante para alterar o shell padrão.

Isso também terá o bom efeito colateral de reduzir / principalmente eliminar consultas ao seu servidor LDAP:)

    
por 23.06.2009 / 23:56
0

Você configurou o NSS para falar diretamente com o servidor LDAP ou está passando por um proxy como nslcd ? Em caso afirmativo, procure configurar o proxy para reconfigurar o atributo de diretório pessoal do usuário. Por exemplo, em nslcd.conf você pode declarar:

map passwd homeDirectory "/home/$uid"

Qual é a coisa óbvia?

    
por 07.03.2012 / 13:34