エイリアスを見ることができません

エイリアスを見ることができません

私のrootユーザーとは異なるユーザーtestuserがあります。 testuser の .bashrc には ls -a の la のようないくつかのエイリアスがあります。ただし、testuserにログインしてlaを実行しようとすると、次のエラーが発生します。 -sh: la: not find

$HOMEを探しても権限が拒否されました(?)

これにより作業速度が遅くなります!助ける!

答え1

シェルからのメッセージはで始まります-sh。これは2つの重要な手がかりを提供します。

  • 先行は、-これがログインシェルであることを示します。通常、ログインプログラム(ユーザー名とパスワードを入力するプログラム、logingdm、sshdなど)はextra -~/.profileセッション開始ファイルを読みます。
  • シェルの名前はですsh。したがって、ユーザーのログインシェルはbash/bin/shではなくbashに設定されます。 bashへのシンボリックリンクまたは/bin/shdashなどの他のシェルです。 bashがnameとして呼び出されると、互換性のために構成ファイルを読み取るのではなく、標準ファイルのみをsh読み込みます(ログインシェルでは非ログインシェルではファイルを読みません)。だからそれはどちらも読まないでしょう。~/.profile/etc/profile~/.bashrc

bashを明示的に呼び出すと、.bashrcコマンドを指定しても-t端末を開くようにフラグを渡す必要があります。ssh

ssh -t testuser@nameofhost bash

代わりに、ユーザーのログインシェルをbashに切り替えたい場合があります/bin/shtestuser

chsh -s /bin/bash

/usr/local/bin/bashbashがある場所にパスを変更します。引数なしで呼び出すと、chsh選択できるシェルを示すメニューが表示されます。

答え2

システム全体の/etc/bashrcおよび/または/etc/profileファイルを確認できます。ファイルに次の内容を追加することもできます。

if [ `whoami` == "testuser" ] 
then  
   alias x='echo x' # alias list..
fi

関連情報