ログインすると、どのファイルが表示または実行されますか?

ログインすると、どのファイルが表示または実行されますか?

私はカスタムARMボードに組み込みLinuxディストリビューション(Lime2)を使用しています。

SSH経由でログインすると、次の情報が表示されます。

root@mybox ~ # ssh localhost
root@localhost's password:

 _     _                  ____
| |   (_)_ __ ___   ___  |___ \
| |   | | '_ ` _ \ / _ \   __) |
| |___| | | | | | |  __/  / __/
|_____|_|_| |_| |_|\___| |_____|


welcome to mybox!
Last login: Wed May  4 19:50:28 2016 from localhost
Load: 1.01, 1.10, 0.86 - Board: 27.3°C - Memory: 929Mb
root@mybox ~ #

このプロンプトのさまざまなコンポーネントがどこから来るのか知りたいです。これが私が思いついたものです:

  • /bin/login明らかに、パスワードプロンプトラインは次のようになります。
  • Lime2バナーがどこから出てくるのかわかりません。
  • ウェルカムメッセージは/ etc / motdに入力したものです。
  • /bin/login一部のサービスで「最後のログイン」行が作成されたようです。PAM
  • 隠された「ロード」行を見つけました。/etc/bash.bashrc.custom

それでは...さらに、/etc/motdログインシェルが作成される前に他のどのファイルが表示または実行されますか?このLime2バナーはどこから来たのですか?

答え1

アクセスされたすべてのファイルを印刷するstraceshow allシステムコールを使用できます。open

追跡するローカルログインセッション、ルートシェルで実行:

strace -f -e open login 2>&1

追跡するSSHログイン会議:

strace -f -e open -p <sshd_pid> 2>&1

たとえば、まず ssh デーモンの PID を決定します。

router:~# ps -ef | grep ssh
root      4816     1  0 May04 ?        00:00:00 /usr/sbin/sshd -D
root      6584  5941  0 01:18 ?        00:00:00 sshd: root@pts/0
root      6647  6381  0 01:23 pts/0    00:00:00 grep --color=auto ssh

次に、-pオプションとsshdのPIDを使用して追跡します。

strace -f -e open -p 4816 2>&1

次に、別の端末でSSHを使用してログインします。

関連情報