Substituir shell LDAP

9

Eu tenho um servidor LDAP e um shell predefinido (bash) definido nele. Mas há algumas máquinas nas quais eu quero que um shell diferente seja usado sempre que o usuário fizer login, em vez do shell armazenado no LDAP.

Como posso fazer isso?? Alguém pode me dar alguma direção nisso?

Obrigado

Incrível
fonte
qual OS / versão?
rkthkr
OS - Debian Lenny
Incrível

Respostas:

10

No /etc/ldap.conf, adicione a seguinte linha:

nss_override_attribute_value loginShell <different_shell>

Boa sorte,
João Miguel Neves

jneves
fonte
1
Apenas uma nota que para que isso funcione para mim, eu tive que reiniciar nscd após a mudança ( /etc/init.d/nscd restart)
Michael Mior
/etc/ldap.confé o arquivo de configuração da libnss . Em sistemas debianish, é /etc/libnss-ldap.conf. O man nss_ldap do seu sistema deve fornecer o nome exato. Eu também tive que correr nscd -i passwdpara liberar o cache nscd.
exore 23/09/19
3

Diretórios pessoais compartilhados? Caso contrário, insira os usuários ~/.bash_profile(ou qualquer que seja o arquivo adequado, marque INVOCATION in man bash):

exec /bin/tcsh

Ou qualquer shell que você deseja substituir com o bash.

Se eles fizerem login usando ssh, você poderá usar pares de chaves e comandos forçados.

Observe que, dependendo de onde você coloca o exec para outro shell, comandos como scppodem não funcionar corretamente se você não procurar um shell interativo, como no /etc/skel/.bashrcUbuntu.

Sua melhor aposta é pedir ao administrador do LDAP que mude loginShellpara o seu usuário LDAP.

ptman
fonte
Os usuários farão login através do ssh. Você pode elaborar um pouco mais sobre o uso de pares de chaves e opção de comandos forçados. Você pode me dar algumas dicas? Obrigado.
Incrível
Pares de chaves SSH: < sial.org/howto/openssh/publickey-auth > Informações sobre comandos forçados podem ser encontradas nas páginas de manual sshd (8) e sshd_config (5)
ptman
Não consegui encontrar uma opção que faça isso automaticamente para todos os usuários. Deve ser algo relacionado ao ldap também, porque aqui o sshd lê o shell padrão no ldap. E eu quero substituir isso.
Incrível