Est-il possible de placer des commandes dans / etc / motd?

13

Puis-je mettre des commandes shell dans le /etc/motdfichier de bannière de connexion? J'ai essayé:

 $(uptime)

et

`uptime`

Est-ce possible?

Justin
la source

Réponses:

15

/etc/motd est seulement lu et non exécuté, donc techniquement parlant, vous ne pouvez pas y mettre de commandes shell.

Cependant, il est possible d'exécuter un script shell au moment de la connexion qui aura le même résultat. Ceci est généralement réalisé en adaptant le /etc/profilescript qui est exécuté à chaque fois qu'un utilisateur se connecte. Une pratique utile consiste à placer la commande que vous souhaitez exécuter dans un script nommé /etc/motd.shet à appeler ce script depuis /etc/profile, généralement vers la fin de celui-ci.

Tonin
la source
3
ce n'est pas une pratique courante d'utiliser /etc/motd.sh
1
@EricDANNIELOU Oui, on peut utiliser le nom de script qu'il veut. Je viens de supprimer l' adjectif commun qui n'était pas approprié. Pourtant, le nommer de cette façon, il est facile de repérer et de savoir à quoi il sert.
Tonin
1
Il semble qu'il existe un moyen d'utiliser cron pour remplacer régulièrement le message statique motd: md3v.com/create-a-linux-server-status-motd Je pense que ce script de profil semble être un meilleur moyen, moins de pièces mobiles.
CMCDragonkai
4
Mettre la sortie comme un MOTD dans votre profil est susceptible de casser sftp.
Stuart P. Bentley
4
Vous pouvez placer le motd.shscript à l'intérieur /etc/profile.d/avec des autorisations 755. De cette façon, vous n'auriez pas besoin de l'appeler depuis /etc/profile.
Itay Grudev
8

Dans les serveurs Ubuntu, il existe un programme appelé update-motddepuis le package libpam-modules:

Les administrateurs système UNIX / Linux communiquent souvent des informations importantes à la console et aux utilisateurs distants en conservant du texte dans le fichier / etc / motd, qui est affiché par le module pam_motd (8) sur les connexions shell interactives.

Traditionnellement, ce fichier est du texte statique, généralement installé par la distribution et uniquement mis à jour lors des mises à niveau de versions, ou écrasé par l'administrateur local avec les informations pertinentes.

Ubuntu a introduit le framework update-motd, par lequel le motd (5) est assemblé dynamiquement à partir d'une collection de scripts lors de la connexion.

Cette collection de scripts vit sous /etc/update-motd.d/. Pour plus d'informations, consultez cette page wiki .

Une autre alternative à la génération /etc/motd, au lieu d'avoir un script exécuté à la connexion, est d'avoir un travail cron. Certes, ce n'est pas pareil, mais j'ai rencontré cette approche parfois dans le passé.

Wtower
la source
1
Post Askubuntu connexe . Forcer avec sudo run-parts /etc/update-motd.d/.
Pablo A du
1
Cela minimise également le délai de connexion au démarrage car vous n'avez pas à évaluer un script à la connexion (en supposant qu'il devient plus complexe que uptime).
ayman