/ etc / motd não é exibido quando um pipe nomeado?

8

Executando o Gentoo 3.4.0

Tendo ouvido recentemente sobre o arquivo / etc / motd, eu tentei que ele exibisse fortunas aleatórias de cowsay. Eu escrevi um script aleatório para atuar como um daemon, alimentando o / etc / motd como um pipe nomeado, como visto em alguns fóruns.

Eu não acho que haja algum problema com o script porque cat'ing the pipe funciona muito bem, mas o MOTD não é exibido no login (usando um arquivo normal)!

fira@nyan ~ % cat /etc/motd
 _______________________________________ 
/ We didn't put in ^^ because then we'd \
| have to keep telling people what it   |
| means, and then we'd have to keep     |
| telling them why it doesn't short     |
| circuit. :-/                          |
|                                       |
| -- Larry Wall in                      |
\ <[email protected]>      /
 --------------------------------------- 
   \
    \
        .--.
       |o_o |
       |:_/ |
      //   \ \
     (|     | )
    /'\_   _/'\
    \___)=(___/

Estou faltando alguma coisa óbvia?

Não usando nada como um .hushlogin ou algo assim, tentei usar vários shells, o pipe é legível a + r.

    
por Fira 01.06.2012 / 23:29

2 respostas

7

Você não está perdendo nada óbvio. Eu procurei a fonte do pam_motd module para descobrir isso.

O truque é que pam_motd faz o seguinte com /etc/motd :

  1. Verifique o tamanho do arquivo.
  2. Aloque um buffer desse tamanho.
  3. Leia o arquivo inteiro no buffer.
  4. Envie o buffer por meio de qualquer método de saída que esteja em uso. (O PAM é modular, afinal de contas; não pode presumir que seja um terminal.)

Como um canal não tem tamanho de arquivo, isso falha na etapa 1.

EDIT : Por que o PAM está preocupado com o tamanho em primeiro lugar? Eu imagino que é para impedir negações de serviço, seja intencional ou não intencional. Quando o PAM verifica o tamanho do arquivo, ele também se recusa a produzir o arquivo se o arquivo for maior que 64 kbytes. Eu imagino que quem tentou entrar no sistema ficaria muito triste se alguém conseguisse enviar um arquivo de filme em DVD para o / etc / motd, por exemplo - sem mencionar quanta memória seria necessária.

    
por 02.06.2012 / 05:45
2

Este link orientará você em todas as etapas essenciais

    
por 02.06.2012 / 06:55