Como posso logar com meus terminais do bash rodando no modo interativo?

2

Estou usando um controlador de domínio (oldap) para autenticar meus hosts. Tudo funciona muito bem, exceto pelo fato de meus usuários do ldap estarem inicializando com shells não-interativos .

Eu sei que o problema não é com o usuário per-se, já que o diretório principal do esqueleto está sendo copiado com sucesso e eu posso emular com sucesso um shell interativo executando bash -l .

Alguém sabe onde posso configurar o processo de carregamento do usuário? ou o processo de carregamento shell / tty / terminal?

Eu sei que tem que haver algum arquivo de configuração que determinará que o shell padrão deve ser chamado com a opção interativa, mas não consigo encontrá-lo.

PS: outro efeito colateral estranho é a ordem dos elementos da minha variável PATH. Normalmente, os primeiros itens do caminho são /usr/local/{sbin,bin} , depois os /user bins . Não tenho certeza de que isso seja relevante embora

    
por hanzo2001 18.09.2017 / 17:30

1 resposta

3

Eu encontrei no meu caso! Muito fácil, na verdade! Para começar, corra

ldapsearch -xLLLH ldap://<dc_uri> -b <dirbase> uid=<username> '*' > user.ldif
grep loginshell user.ldif

No meu caso, o usuário tinha um shell de login incorreto atribuído ( /bin/sh ), o que, para mim, significa traço e não bash .

A solução é simples. Transforme o arquivo de descrição user.ldif em um modificador e, em seguida, execute ldapmodify com credenciais suficientes.

# ldif
dn: uid=<username>,<dirbase>
changeType: modify
replace: loginShell
loginShell: /bin/bash

Em seguida, execute

ldapmodify -xWH ldap://<dc_uri> -D <adminuser> -f modUser.ldif

Se você está com medo, isso pode explodir na sua cara, executar com -nv opções, para que você possa obter uma simulação detalhada do que vai acontecer

    
por hanzo2001 18.09.2017 / 17:30