MOTD é atualizado muito raramente

7

Eu entendo que pam_motd atualiza o MOTD no login, mas às vezes o MOTD simplesmente não é atualizado por dias e eu estou confuso sobre qual poderia ser o motivo. Gostaria de adicionar uptime e who outputs ao MOTD, chamando-os corretamente de /etc/update-motd.d/ scripts, mas parece muito inútil se os usuários receberem informações desatualizadas.

Da página de manual update-motd :

Executable  scripts  in  /etc/update-motd.d/* are executed by pam_motd(8) as
the root user at each login, and this information is concatenated in /var/run/motd.
The order of script execution is determined by the run-parts(8) --lsbsysinit option
(basically alphabetical order, with a few caveats).

No meu entendimento, o MOTD deve ser atualizado em cada login. Mas não é. E não encontro um script que atualize manualmente o MOTD. Eu poderia adicionar uma linha run-parts ao cron , mas não acho que seja a maneira correta de resolver esse problema, pois parece um hack ou uma solução alternativa.

Minha última esperança foi definir /etc/pam.d/login assim:

# Prints the message of the day upon succesful login.
# (Replaces the 'MOTD_FILE' option in login.defs)
# This includes a dynamically generated part from /run/motd.dynamic
# and a static (admin-editable) part from /etc/motd.
#session    optional   pam_motd.so  motd=/run/motd.dynamic noupdate
session    optional   pam_motd.so  motd=/run/motd.dynamic
session    optional   pam_motd.so

Eu pensei que remover noupdate resolveria o problema, mas isso não acontece.

    
por MegaBrutal 11.01.2014 / 07:43

2 respostas

4

Recentemente encontrei o mesmo problema. Você precisará editar /etc/pam.d/sshd para remover ou comentar o noupdate também.

    
por chrishas35 30.03.2014 / 00:44
2

update-motd é um script simples que é executado:

   run-parts --lsbsysinit /etc/update-motd.d 2>/dev/null

de acordo com o manual de peças de execução :

   If  the  --lsbsysinit  option  is given, then the names must not end in
   .dpkg-old  or .dpkg-dist or .dpkg-new or .dpkg-tmp, and must belong  to
   one  or more of the following namespaces: the LANANA-assigned namespace
   (^[a-z0-9]+$);   the   LSB   hierarchical   and   reserved   namespaces
   (^_?([a-z0-9_.]+-)+[a-z0-9]+$);  and  the  Debian cron script namespace
   (^[a-zA-Z0-9_-]+$).

Portanto, para verificar se o problema está relacionado ao nome do arquivo update-motd , tente:

   run-parts --test --lsbsysinit /etc/update-motd.d

este comando imprime os nomes dos scripts que seriam executados, mas na verdade não os executam.

    
por Lety 25.10.2014 / 15:50

Tags