Por que recebo o erro “Não foi possível chdir para o diretório inicial”

2

Eu trabalho em suporte e ocasionalmente recebo acesso shell a um sistema Linux remoto.

Eu freqüentemente acho que quando o administrador me dá acesso remoto, recebo a seguinte saída no login.

[joe@mycomputer ~]$ ssh [email protected]
[email protected] password:
Creating directory '/foobar/users/bob'.
Unable to create and initialize directory '/foobar/users/bob'.
Last login: Mon Jul 29 13:05:27 2013 from bar.edu
Could not chdir to home directory /foobar/users/bob: Input/output error
-bash: /foobar/users/bob/.bash_profile: Input/output error
-bash-4.1$

-bash-4.1$ echo $HOME
/foobar/users/bob

Os administradores com quem eu interajo sabem muito mais sobre o Linux do que eu. Minhas perguntas são:

  1. Por que recebo "Não é possível inicializar o diretório"?

    • Isso é um erro da parte deles, ou isso é intencional por segurança? Estou assumindo que eles correram useradd bob sem a opção -m quando criaram minha conta.
  2. Por que meu nome de shell 'bash-4.1' e não 'bob'?

Atualizar
Eu estou supondo que, porque eu não sou um usuário normal no sistema, eu não tenho um compartilhamento de rede foobar / usuários, apenas o armazenamento local. Parece estranho que uma porcentagem tão alta de servidores que eu me conecte configuraria seu servidor da mesma maneira.

Recursos que investiguei

por spuder 07.08.2013 / 23:23

3 respostas

2

Primeiro, a pergunta fácil, por que meu nome de shell é -bash-4.1$ . O nome técnico para o que você chama de nome do shell é o "prompt de comando". Com o bash definido através da variável de ambiente PS1 . Se PS1 não estiver definido no seu ambiente, o bash terá como padrão mostrar a versão bash como seu prompt. (Consulte a seção ENVIRONMENT da página man bash para obter mais detalhes sobre o ambiente e Shell Variables para obter uma lista dos que ela fornece por padrão). Se você quiser que ele mostre bob (suponho que você esteja acostumado a exibir o diretório de trabalho) você pode usar:

PS1='\W$ '

Veja a seção PROMPTING do manual bash para ver o que mais pode ser definido no prompt do bash.

Eu suspeito que Unable to create and initialize directory e Input/output error apontem para uma unidade de disco rígido com falha, uma unidade USB externa desligada ou, se você usar NIS / NIS + para automontar, um problema de NFS (diretórios sob / foobar / usuários podem ser automontado).

Você pode ver em que sistema de arquivos está o /foobar/users do caminho examinando a saída do comando mount , que informará quais dispositivos fornecem quais partes do sistema de arquivos. Ele irá informá-lo aqui como onde / foobar é montado a partir de. Se / foobar não estiver listado, então é o diretório / que está tendo erros de E / S e provavelmente é um disco com falha. Você também pode filtrar a montagem pelos tipos de sistema de arquivos mount -t nfs mostra todas as unidades nfs mount -t ext3 mostrará todos os pontos de montagem ext3fs e assim por diante. man mount e olhando para a opção -t mostrarão quais sistemas de arquivos são suportados.

Uma vez que você tenha descoberto em qual dispositivo o diretório está, você pode ter uma idéia melhor de como diagnosticar o problema (se é algo como / dev / sda1 ou similar) é uma unidade de disco rígido e você pode começar a procurar por erros nos arquivos de log do sistema grep sda1 /var/log/syslog . Se é NFS, você precisa remontar a unidade ou reiniciar os serviços NFS.

    
por 08.08.2013 / 03:04
1

Seu primeiro login falha ao criar o diretório inicial e, depois disso, o sistema falha ao entrar nesse diretório. Isso ocorre simplesmente porque não há verificação de erros se a criação do diretório foi bem-sucedida. Você precisa pedir a seus administradores para investigar por que a criação da pasta falha.

    
por 07.08.2013 / 23:55
1

“Erro de entrada / saída” indica algo errado com o driver do sistema de arquivos. Pode ser um erro de driver ou um erro de hardware. Se cd tivesse relatado “nenhum arquivo ou diretório”, isso poderia indicar um erro no script de criação do diretório pessoal, mas “Erro de entrada / saída” de cd indica algo mais profundo. Entre em contato com o administrador do sistema.

O prompt do shell é bash-4.1$ em vez do que você está acostumado porque o seu diretório home não pôde ser aberto, então o seu .bashrc (que presumivelmente define um prompt diferente) não é lido.

    
por 08.08.2013 / 02:33