Problema com o shell padrão e o diretório inicial

0

Recentemente, recebi acesso a uma máquina no trabalho. No entanto, tenho tido problemas para configurar meu ambiente de desenvolvimento. Informações relevantes sobre a máquina:

$ uname -a
Linux blackhawk2 3.2.0-41-generic #66-Ubuntu SMP Thu Apr 25 03:27:11 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Eu uso o OpenSSH para fazer login nesta máquina remotamente. A coisa que notei imediatamente foi que meu diretório pessoal não estava configurado corretamente.

$ echo $HOME
/

Além disso, minha concha de preferência é Bash, mas:

$ echo $SHELL
/bin/csh

Estou ciente de que o diretório inicial e o shell padrão estão configurados em '/ etc / passwd'. Inspecionando este arquivo eu acho:

glperez:x:1015:1015:glperez,,,:/home/glperez:/bin/bash

EDITAR: Meu diretório pessoal definitivamente existe e '/ bin / bash' está funcionando corretamente. Além disso, a autenticação do usuário é gerenciada por um servidor de autenticação de algum tipo. Infelizmente, esta informação não está prontamente disponível para mim neste momento.

O mais estranho é que nas duas ocasiões em que tentei corrigir esse problema, o primeiro login resulta no comportamento esperado. Ou seja, meu diretório inicial está configurado corretamente e meu shell é Bash. Ao fazer o login novamente, o problema é exibido.

    
por Daeden 23.08.2013 / 03:58

4 respostas

0

O problema é / foi com o meu UID. Por algum motivo, meu UID não é consistente.

Parece que algo está errado quando o nome de usuário está sendo pesquisado e recebo um UID temporário.

Agora estou em contato com um administrador do sistema para resolver isso.

Obrigado por todas as respostas!

    
por Daeden 27.08.2013 / 00:59
0

Leia man 1 login , leia /etc/login.defs . Veja também o que você tem em $PATH , $LOGNAME .

Assegure-se de que /home/glperez exista, com ls -ld /home/glperez . Se não existir e /etc/login.defs permitir, você receberá um diretório cujo login é sure , / .

Você também pode verificar que /bin/bash existe, é executável e está incluído em /etc/shells

ls  -l /bin/bash;ldd /bin/bash;grep /bin/bash /etc/shells  

Você deve perguntar ao sysadm de blackhawk2 como ele / ela criou a conta glperez . useradd ou adduser ? Que parâmetros? Você deveria ter um diretório pessoal criptografado? O blackhawk2 autentica usuários localmente ou pela rede (verifique /etc/nsswitch.conf )? Se através da rede, o que esse servidor pensa de você?

    
por waltinator 23.08.2013 / 06:30
0

Se tiver certeza de que você tem exatamente essa linha:

glperez:x:1015:1015:glperez,,,:/home/glperez:/bin/bash

no arquivo /etc/passwd , você deve verificar todos os seus arquivos de inicialização como ~/.bashrc , ~/profile e assim por diante. Muito provavelmente você tem algo como os seguintes comandos em um desses arquivos:

ksh              #change the shell to ksh
cd /             #chenge the working directory to /

HOME=/
SHELL=/bin/ksh
    
por Radu Rădeanu 23.08.2013 / 09:33
0

O seguinte executará o bash de forma semelhante à maneira como ele é executado quando você efetua login, mas emite o nome do arquivo e o número da linha de cada comando executado. Ele deve ajudá-lo a descobrir onde ele muda a variável SHELL .

PS4='+ $BASH_SOURCE:$LINENO:' bash -xlic ''
    
por geirha 24.08.2013 / 21:51