私はカスタム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
アクセスされたすべてのファイルを印刷するstrace
show 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を使用してログインします。