Сначала убедитесь, что вы делаете что-то вроде:
export PATH="/bin:/usr/bin:/sbin:/usr/sbin"
иметь возможность выполнить что-либо вообще.
Затем убедитесь, что вы исправили свой файл /etc/profile
как в нем есть синтаксическая ошибка ... ошибка предполагает, что это выражение if
или другое, включающее оператор [
.
Похоже, что ваш /usr/bin/id
отсутствует. Это на другом разделе, который не был смонтирован, смонтирован noexec
или похожий?
Для тех, кто узнает об этом позже: оказывается, что после /etc/environment
было неправильно сформировано (не содержало всех необходимых строк) и, таким образом, среда bash
до чтения /etc/profile
уже была обработана. От 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.
На Debian (6.0.6) это был мой профиль по умолчанию /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