Primeiro, certifique-se de fazer algo como:
export PATH="/bin:/usr/bin:/sbin:/usr/sbin"
para poder executar qualquer coisa.
Em seguida, certifique-se de corrigir o arquivo /etc/profile
, já que parece ter um erro de sintaxe ... o erro sugere que é um if
ou outra expressão envolvendo um operador [
.
Parece que seu /usr/bin/id
está faltando. Está em outra partição que não foi montada, está montada noexec
ou similar?
Para qualquer um que encontre isso depois: acontece que /etc/environment
foi malformado (não contém todas as linhas necessárias) e, portanto, o ambiente de bash
antes de ler /etc/profile
já estava borked. De man ssh
:
/etc/environment
This file is read into the environment at login (if
it exists). It can only contain empty lines, com-
ment lines (that start with '#'), and assignment
lines of the form name=value. This file is pro-
cessed in all environments (normal rsh/rlogin only
process it on AIX and potentially some other sys-
tems). The file should be writable only by root,
and should be world-readable.
Em um Debian (6.0.6) este foi meu padrão /etc/profile
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "'id -u'" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/games"
fi
if [ "$PS1" ]; then
if [ "$BASH" ]; then
PS1='\u@\h:\w\$ '
else
if [ "'id -u'" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
export PATH
umask 022