グループごと/ユーザーごとにSSHログインで表示されるMOTDを無効にするか、変更したいと思います。 SuperUserのこの質問 には、sshd_config
でMatch
ブロックを使用できるという回答があります。ただし、man sshd_config
の状態:
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.
また、そのリストにはMOTDに関連するものは何もありません。そして実際、その提案を使用しようとすると、sshd
が正しくない構成のために起動に失敗します。
だから、私はこれを行うことができますか?もしそうなら、どのように? SSH構成から、またはMOTDを生成/印刷するものを変更しますか?
/etc/update-motd.d
によると、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.
(echo $USER
を実行するスクリプトでこれをテストしました。MOTDでroot
を取得しました。)
これでPAM設定が残ります。グループ/ユーザーごとにpam_motd
を無効にできる可能性があると思いますが、その方法はわかりません。最後のオプションは、pam_motd
を完全に無効にし、pam_exec
を使用することですが、それが実現しないことを願っています。
ユーザーごとのmotdまたはログインバナー に触発されたユーザー/グループごとのmotdの実装を次に示します。
最初のコメントアウト:
session optional pam_motd.so motd=/run/motd.dynamic
session optional pam_motd.so
/etc/pam.d/login
でPrintMotd no
に/etc/ssh/sshd_config
を設定します
次に、ユーザー/グループごとのメッセージスクリプトを定義して、フォルダーに入れます。次に例を示します。
Sudo mkdir -p /etc/mymotd/groups
Sudo mkdir -p /etc/mymotd/users
これらのフォルダーでは、グループまたはユーザーごとに、その日のメッセージを標準出力に印刷する実行可能スクリプトを作成できます。
次の行で/etc/profile.d/perUserGroupMotd.sh
を作成できます。
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
または、ファイルを使用してメッセージを有効/無効にし、/path/to/script -g $gidName
または/path/to/script -u $USER
を実行することもできます。明らかに、さまざまな実装が考えられます。
pam_motd
について、最後に次の2つのバグを見つけました。
update-motd
パッチは:環境を設定解除し、PATH
変数を手動で設定します。update-motd
によって生成されたファイルのロックの欠落に関するものです。マルチユーザーシステムでは、複数の同時アクセスによりmotdが破損する可能性があります。これらの理由により、pam_motd
を目的に使用することは不可能だと思います。
HUSHLOGIN_FILE
の/etc/login.defs
ディレクティブはログインシーケンス中に通常のチャタリングをすべて禁止するであるため、最終ログイン日でも出力は抑制されます。
Motdはシステム内のすべてのユーザーに到達するように設計されているため、すべてのユーザーに対してssh
およびpam_motd
単純に有効または無効にできると思います。