저는 맞춤형 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를 사용하여 로그인하십시오.