/ "bash"コマンド(Linux、bash、ubuntu、amazon-ec2)を実行しない限り、/ BASHおよび/または.BASHRCがSUまたはSSHログイン後に正しく動作しない

"bash"コマンド(Linux、bash、ubuntu、amazon-ec2)を実行しない限り、BASHおよび/または.BASHRCがSUまたはSSHログイン後に正しく動作しない

Ubuntu 10.04を実行しているAmazon EC2マシンがあります。

デフォルトのユーザ、ubuntu "s .bashrc 適切に行動しているようですが、もし私が ssh または su 2人目のユーザー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: wa]u@h:w$
[e]0;u@h: wa]u@h:w$ bash
mikey@EC2:~$

私は周りを遊んでみた ~/.profile そして ~/.bash_login 含める

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

しかし、これまでのところ、何もこのトリックをやっていないようだった。

どのポインタも大いに評価されるでしょう。ありがとう!

回答:

回答№1の場合は37

実際、あなたのシェルが bashあなたはそれを次のように変更しようとすることができます:

usermod -s /bin/bash mikey

/ bin / bashが次の場所にある場合 bash そのシステム上で


回答№2の場合は3

あなたのデフォルトシェルは dash または sh そうではない bash この場合。 echo $SHELL 表示する必要があります /bin/sh、それはリンクかもしれないので、それをチェックしてください ls -l /bin/sh 他のシェルにリンクしていません。


答え№3の2

これを固定的に修正するには、/ etc / passwdを変更してください

から:

kwilson:x:3042:3042 :: / home / jjson:/ bin / sh

それを次のように変更します。

kwilson:x:3042:3042 :: / home / jjson:/ bin / bash


答え№4の2

あなたは使えない chsh シェルを変更するには? / etc / passwdをハッキングする代わりに?