悪意のある別名宣言を見つける方法は?

悪意のある別名宣言を見つける方法は?

alias具体的な内容がどこで宣言されたかを探そうとします。エイリアスを見つけるために、私が知っている一般的な場所をすべて検索しました。

  • ~/.bashrc
  • ~/.bash_profile
  • /etc/bashrc
  • /etc/設定ファイル

不運。

alias私はこれを行うと、次のような結果が得られるので、これを知っていますwhich COMMAND

alias COMMAND='/path/to/command'
    /path/to/command

alias名前でのみ知られているファイル宣言を見つける方法はありますかalias

答え1

/etc/profile.d/違反事項があるか調べますalias

以下を実行して見つけることもできます。

grep -r '^alias COMMAND' /etc

その後、grepファイルで始まる行を繰り返し検索しますalias COMMAND

すべて失敗したら最後に入れてください~/.bashrc

unalias COMMAND

答え2

試すことができるいくつかのタスクは次のとおりです。

  1. bash -vシェルの起動中にどの行を読み込んでいるかを確認するために使用されます。
  2. bash -xシェルの起動中にどのコマンドが実行されているかを確認するために使用されます。
  3. 単一の起動ファイルとしてのみ実行

bash-v

この-v オプションを使用すると、bash読み取るすべてのスクリプトファイルのすべての行が印刷されます。

走り始める

bash -i -v >bash-i.out 2>&1

5〜10秒ほど待ってからを押しますCtrl+C

bash-i.outこれにより、すべての起動ファイルが一緒にマージ(またはリンク)されているのと同じ名前のファイルが提供されます。

次に、lessを使用してファイルを開き、を使用してエイリアスを検索します/aliasname

次に、ファイルの他の行に関連して、このエイリアスが表示される場所を比較してみましょう。たとえば、ほとんどのシステムでは、/etc/bash.bashrc上部/etc/bash.bashrc~/.bashrc

一番上にあると、~/.bashrcエイリアスを定義する開始ファイルである可能性が高くなります。それ以外の場合は、ファイル内にあるか(ドットコマンド)を介して埋め込まれたファイルにあります。/etc~/.bashrcsource.

エイリアスが表示されない場合はお試しください。

bash -l -v >bash-l.out 2>&1

これはbashがログインシェルになり、andの代わりにand/etc/profileなどの他の起動ファイルを読み取るように指示します。~/.bash_profile/etc/bash.bashrc~/.bashrc

バッシュ-x

bash -vこれが明確な答えを与えていない場合は、シェルが読んでいる行ではなく、シェルが実行されているコマンドを印刷するランニングを試してみてくださいbash -x

方法は基本的に上記と同じで、に-v変更しました-x。 (必要であれば、2つを同時に使用することもできます。)

単一の起動ファイルとしてのみ実行

bash -i --rcfile="$HOME/.bashrc"

エイリアスがあることを確認してください。

システムにこの機能がある場合は、rcfile次のように設定して同じことを試してください。/etc/bash.bashrc

それでは試してください。

bash -l --rcfile="$HOME/.bash_profile"

profileそして、名前に含まれるすべてのbash起動ファイルに対して同じことを行い$HOME/.bash_profileます/etc/profile

どちらにでもエイリアスを表示することで、どのファイルを見るべきかを知ることができます。

答え3

たぶんあなたでしょうか.xinitrc?また、あなたのファイル.bashrcやソース.bash_profileの他のファイルがあることを確認する必要があります。たとえば、次のコマンドで参照される別のファイルにすべてのエイリアスを保存します。

[ -f ~/.bash_alias ] && source $HOME/.bash_alias

役に立つかもしれないいくつかの質問:一般ユーザーのためですか、それともルートのためですか?どんな順序ですか? Linuxはどのようなスタイルですか?

答え4

私はエイリアス定義を入れる非常に一般的な慣行に従いました。

~/.bash_aliases

次に、.bashrcで呼び出します。

[ -f ~/.bash_aliases ] && source $HOME/.bash_aliases

関連情報