私のrootユーザーとは異なるユーザーtestuserがあります。 testuser の .bashrc には ls -a の la のようないくつかのエイリアスがあります。ただし、testuserにログインしてlaを実行しようとすると、次のエラーが発生します。 -sh: la: not find
$HOMEを探しても権限が拒否されました(?)
これにより作業速度が遅くなります!助ける!
答え1
シェルからのメッセージはで始まります-sh
。これは2つの重要な手がかりを提供します。
- 先行は、
-
これがログインシェルであることを示します。通常、ログインプログラム(ユーザー名とパスワードを入力するプログラム、login
gdm、sshdなど)はextra-
。~/.profile
セッション開始ファイルを読みます。 - シェルの名前はです
sh
。したがって、ユーザーのログインシェルはbash/bin/sh
ではなくbashに設定されます。 bashへのシンボリックリンクまたは/bin/sh
dashなどの他のシェルです。 bashがnameとして呼び出されると、互換性のために構成ファイルを読み取るのではなく、標準ファイルのみをsh
読み込みます(ログインシェルでは非ログインシェルではファイルを読みません)。だからそれはどちらも読まないでしょう。~/.profile
/etc/profile
~/.bashrc
bashを明示的に呼び出すと、.bashrc
コマンドを指定しても-t
端末を開くようにフラグを渡す必要があります。ssh
ssh -t testuser@nameofhost bash
代わりに、ユーザーのログインシェルをbashに切り替えたい場合があります/bin/sh
。testuser
chsh -s /bin/bash
/usr/local/bin/bash
bashがある場所にパスを変更します。引数なしで呼び出すと、chsh
選択できるシェルを示すメニューが表示されます。
答え2
システム全体の/etc/bashrcおよび/または/etc/profileファイルを確認できます。ファイルに次の内容を追加することもできます。
if [ `whoami` == "testuser" ]
then
alias x='echo x' # alias list..
fi