Недавно мне был предоставлен доступ к машине на работе. Однако у меня возникли проблемы с настройкой среды разработки. Соответствующая информация о машине:
$ 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
Я использую OpenSSH для удаленного входа на эту машину. Что я сразу заметил, так это то, что мой домашний каталог не был установлен должным образом.
$ echo $HOME
/
Далее, моя оболочка предпочтений - Bash, но:
$ echo $SHELL
/bin/csh
Я знаю, что домашний каталог и оболочка по умолчанию настроены в '/ etc / passwd'. Проверяя этот файл, я нахожу:
glperez:x:1015:1015:glperez,,,:/home/glperez:/bin/bash
РЕДАКТИРОВАТЬ: мой домашний каталог определенно существует, и / bin / bash работает правильно. Кроме того, аутентификация пользователя выполняется на каком-либо сервере аутентификации. К сожалению, эта информация сейчас недоступна для меня.
Странно то, что в обоих случаях, когда я пытался решить эту проблему, первый вход в систему приводит к ожидаемому поведению. То есть мой домашний каталог установлен правильно, а моя оболочка - Bash. При повторном входе в систему проблема появляется.
Читать man 1 login
, читать /etc/login.defs
. Также посмотрите, что у вас есть в $PATH
, $LOGNAME
.
Я бы удостоверился, что /home/glperez
действительно существует, с ls -ld /home/glperez
. Если он не существует и /etc/login.defs
разрешает, вам будет предоставлен каталог, в котором логин уверен, что существует, /
.
Вы также можете проверить, что /bin/bash
существует, является исполняемым и включен в /etc/shells
ls -l /bin/bash;ldd /bin/bash;grep /bin/bash /etc/shells
Вы должны спросить у системного администратора blackhawk2
, как он / она создал glperez
аккаунт. useradd
или adduser
? Какие параметры? Вы должны иметь зашифрованный домашний каталог? Аутентифицирует ли blackhawk2
пользователей локально или по сети (проверьте /etc/nsswitch.conf
)? Если по сети, что сервер думает о вас?
Если вы уверены, что у вас есть именно эта строка:
glperez:x:1015:1015:glperez,,,:/home/glperez:/bin/bash
в файле /etc/passwd
, то вам следует проверить все ваши файлы инициализации оболочки , например ~/.bashrc
, [ 114] и так далее. Скорее всего, у вас есть что-то вроде следующих команд в одном из этих файлов:
ksh #change the shell to ksh
cd / #chenge the working directory to /
HOME=/
SHELL=/bin/ksh
Следующее будет запускать bash аналогично тому, как он запускается при входе в систему, но выводит имя файла и номер строки каждой команды, которую он запускает. Это должно помочь вам выяснить, где он изменяет переменную SHELL
.
PS4='+ $BASH_SOURCE:$LINENO:' bash -xlic ''
Проблема была / была с моим UID. По какой-то причине мой UID не соответствует.
Кажется, что что-то идет не так, когда ищется имя пользователя, и мне дают временный UID.
Я сейчас нахожусь в контакте с системным администратором, чтобы решить эту проблему.
Спасибо за все ответы!