Quais arquivos são exibidos ou executados após o login?

2

Estou usando uma distribuição Linux incorporada (Lime2) em uma placa ARM personalizada.

No login via SSH, o seguinte é exibido:

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 ~ #

Eu estou querendo saber de onde os componentes individuais deste prompt estão vindo. Isso é o que eu descobri:

  • A linha do prompt de senha vem de /bin/login , obviamente
  • Eu não tenho ideia sobre o banner do Lime2 vindo de
  • A mensagem de boas vindas é o que eu digitei em / etc / motd
  • A linha "Último login" é gerada por /bin/login ou algum PAM service, suponho
  • A linha "Load" que encontrei escondida em /etc/bash.bashrc.custom

Então ... além de /etc/motd , quais outros arquivos são exibidos ou executados antes de gerar o shell de login? De onde vem este banner Lime2?

    
por mic_e 04.05.2016 / 19:58

1 resposta

2

Você pode usar strace para mostrar todos os open syscalls, que imprimirão todos os arquivos acessados.

Para rastrear uma sessão login local , execute isso em um shell raiz:

strace -f -e open login 2>&1

Para rastrear uma sessão ssh login :

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

Por exemplo, primeiro determine o PID do daemon ssh:

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

Em seguida, rastreie usando a opção -p seguida de PID de sshd:

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

Agora faça o login usando o ssh de outro terminal.

    
por 04.05.2016 / 23:12