BASH и / или .BASHRC не работают должным образом после входа в систему SU или SSH, если не выполнить команду "bash" - PullRequest
15 голосов
/ 22 декабря 2011

У меня есть машина Amazon EC2 под управлением Ubuntu 10.04.

Пользователь по умолчанию, .bashrc в Ubuntu, похоже, ведет себя правильно, но если я ssh или su для второго пользователя, mikey,он не будет отображаться должным образом, пока я не запущу bash:

Пример 1.) Изменение пользователя с помощью su

mikey@home ~$ ssh ubuntu@EC2
ubuntu@EC2:~$
ubuntu@EC2:~$ su mikey
$ 
$ bash
mikey@EC2: $

Пример 2.) Вход по SSH напрямую как пользователь

mikey@home ~$ ssh mikey@EC2
/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;\u@\h: \w\a\]\u@\h:\w$
\[\e]0;\u@\h: \w\a\]\u@\h:\w$ bash
mikey@EC2:~$

Я пытался поиграться с ~/.profile и ~/.bash_login, чтобы включить

if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

, но до сих пор, похоже, ничего не помогло.

любые указатели будут с благодарностью.спасибо! * * 1023

Ответы [ 4 ]

37 голосов
/ 22 декабря 2011

Если на самом деле ваша оболочка не bash, вы можете попробовать изменить ее следующим образом:

usermod -s /bin/bash mikey

Если / bin / bash - это местоположение bash в этой системе.

3 голосов
/ 22 декабря 2011

Я думаю, что ваша оболочка по умолчанию dash или sh, а не bash в этом случае.echo $SHELL должен показать его, если он показывает /bin/sh, это может быть ссылка, поэтому убедитесь, что ls -l /bin/sh не ссылается на какую-либо другую оболочку.

2 голосов
/ 14 декабря 2012

Разве вы не можете использовать chsh для смены оболочки?вместо взлома / etc / passwd?

2 голосов
/ 29 января 2012

Чтобы исправить это на постоянной основе, измените / etc / passwd

От:

kwilson: х: 3042: 3042 :: / Главная / jjson: / бен / ш

Измените его на:

kwilson: х: 3042: 3042 :: / Главная / jjson: / бен / Баш

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...