Ответ 1
Если на самом деле ваша оболочка не является bash
, вы можете попробовать ее изменить следующим образом:
usermod -s /bin/bash mikey
Если/bin/bash - это расположение bash
в этой системе.
У меня есть машина Amazon EC2 с Ubuntu 10.04.
Пользователь по умолчанию, ubuntu .bashrc
, кажется, ведет себя правильно, но если я ssh
или su
для второго пользователя, mikey, он не отображается должным образом, пока я не запустил bash
:
Пример 1.) Изменение пользователя с помощью su
[email protected] ~$ ssh [email protected]
[email protected]:~$
[email protected]:~$ su mikey
$
$ bash
[email protected]: $
Ex 2.) SSH-ing непосредственно в качестве пользователя
[email protected] ~$ ssh [email protected]
/home/mikey/.bashrc: 13: shopt: not found
/home/mikey/.bashrc: 21: shopt: not found
/home/mikey/.bashrc: 99: shopt: not found
/etc/bash_completion: 33: [[: not found
/etc/bash_completion: 39: [[: not found
/etc/bash_completion: 52: Bad substitution
\[\e]0;\[email protected]\h: \w\a\]\[email protected]\h:\w$
\[\e]0;\[email protected]\h: \w\a\]\[email protected]\h:\w$ bash
[email protected]:~$
Я пробовал играть с ~/.profile
и ~/.bash_login
, чтобы включить
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
но до сих пор ничего не казалось трюком.
любые указатели будут очень благодарны. спасибо!
Если на самом деле ваша оболочка не является bash
, вы можете попробовать ее изменить следующим образом:
usermod -s /bin/bash mikey
Если/bin/bash - это расположение bash
в этой системе.
Я думаю, что ваша оболочка по умолчанию dash
или sh
, а не bash
в этом случае. echo $SHELL
должен показать его, если он показывает /bin/sh
, это может быть ссылка, поэтому убедитесь, что ls -l /bin/sh
не ссылается на какую-либо другую оболочку.
Чтобы исправить это на постоянной основе, измените /etc/passwd
From:
kwilson: х: 3042: 3042::/Главная/jjson:/бен/ш
Измените его на:
kwilson: х: 3042: 3042::/Главная/jjson:/bin/ bash
Не можете ли вы использовать chsh
для изменения оболочки? вместо взлома/etc/passwd?