Je souhaite désactiver ou modifier le MOTD affiché sur la connexion SSH, groupe par utilisateur. Cette question sur SuperUser a une réponse indiquant que je peux utiliser des blocs Match
dans _sshd_config
_. Cependant, _man sshd_config
_ indique:
_Match
...
Only a subset of keywords may be used on the lines following a
Match keyword. Available keywords are AcceptEnv,
AllowAgentForwarding, AllowGroups, AllowTcpForwarding,
AllowUsers, AuthenticationMethods, AuthorizedKeysCommand,
AuthorizedKeysCommandUser, AuthorizedKeysFile,
AuthorizedPrincipalsFile, Banner, ChrootDirectory, DenyGroups,
DenyUsers, ForceCommand, GatewayPorts, GSSAPIAuthentication,
HostbasedAuthentication, HostbasedUsesNameFromPacketOnly,
KbdInteractiveAuthentication, KerberosAuthentication,
MaxAuthTries, MaxSessions, PasswordAuthentication,
PermitEmptyPasswords, PermitOpen, PermitRootLogin, PermitTTY,
PermitTunnel, PubkeyAuthentication, RekeyLimit,
RhostsRSAAuthentication, RSAAuthentication, X11DisplayOffset,
X11Forwarding and X11UseLocalHost.
_
Et je ne vois rien de ce qui est lié à MOTD dans cette liste. Et en effet, si vous essayez d'utiliser cette suggestion, sshd
ne démarrera pas en raison d'une configuration incorrecte.
Alors, je peux faire ça? Si c'est le cas, comment? Depuis la configuration SSH ou en modifiant ce qui génère/imprime le MOTD?
Modifier des fichiers dans _/etc/update-motd.d
_ n'est pas utile, car, selon man 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.
_
(J'ai testé cela avec un script qui faisait _echo $USER
_. J'ai un root
dans mon MOTD.)
Cela laisse la configuration de PAM. J'imagine qu'il pourrait être possible de désactiver _pam_motd
_ groupe par utilisateur/utilisateur, mais je ne sais pas comment faire. La dernière option consisterait à désactiver _pam_motd
_ au total et à utiliser _pam_exec
_, mais j'espère vraiment que cela n'arrivera pas.
Voici une implémentation par utilisateur/groupe motd inspirée par bannière de motd ou de connexion par utilisateur
Premier commentaire sur:
session optional pam_motd.so motd=/run/motd.dynamic
session optional pam_motd.so
dans /etc/pam.d/login
et définissez PrintMotd no
dans /etc/ssh/sshd_config
Vous pouvez ensuite définir votre script de message par utilisateur/groupe et le placer dans un dossier, par exemple:
Sudo mkdir -p /etc/mymotd/groups
Sudo mkdir -p /etc/mymotd/users
Dans ces dossiers, vous pouvez créer des scripts exécutables pour chaque groupe ou utilisateur, qui impriment sur une sortie standard le message du jour.
Vous pouvez créer /etc/profile.d/perUserGroupMotd.sh
avec les lignes suivantes:
gidName=`id -gn`
if [ -e /etc/mymotd/groups/$gidName ]; then
/etc/mymotd/groups/$gidName
else
if [ -e /etc/mymotd/users/$USER ]; then
/etc/mymotd/users/$USER
fi
fi
ou vous pouvez utiliser fichier pour activer/désactiver le message et ensuite exécuter /path/to/script -g $gidName
ou /path/to/script -u $USER
, il existe évidemment de nombreuses implémentations possibles.
À propos de pam_motd
, à la fin j'ai trouvé ces deux bogues:
update-motd
est: Unenvironnement non défini et définit manuellement la variable PATH
.update-motd
. Dans un système multi-utilisateur, plusieurs accès simultanés peuvent endommager motd.Pour ces raisons, j’imagine qu’il est impossible d’utiliser pam_motd
pour votre objectif.
La directive HUSHLOGIN_FILE
dans /etc/login.defs
devrait inhiber toutes les discussions habituelles pendant la séquence de connexion , ainsi toute sortie est supprimée, même la dernière date de connexion .
Je suppose que motd est conçu pour atteindre tous les utilisateurs du système et pour cette raison ssh
et pam_motd
l'activer ou le désactiver pour tous les utilisateurs.