登录后显示或执行哪些文件?

登录后显示或执行哪些文件?

我在定制 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,在生成登录 shell 之前还会显示或执行哪些其他文件?这个 Lime2 横幅来自哪里?

答案1

您可以使用strace显示所有open系统调用,这将打印出所有访问的文件。

追踪一个本地登录会话,在 root shell 中运行:

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 登录。

相关内容