Почему я все еще вижу MOTD, когда вхожу в систему через SSH?

grep -vl сообщит имена файлов, в которых есть хотя бы одна строка, соответствующая шаблону. Здесь вам нужны файлы, в которых ни одна строка не соответствует шаблону. GNU grep (как обнаружено в Debian) имеет для этого параметр -L :

grep -rlZ printf . | xargs -r0 grep -FL '#include <stdio.h>'

С любым POSIX grep вы можете просто отрицать grep -q :

find . -type f -exec grep -q printf {} \; \
               ! -exec grep -Fq '#include <stdio.h>' {} \; \
               -print

Намного менее эффективно, поскольку это означает запуск двух экземпляров grep для каждого файла.

1
07.02.2017, 20:54
2 ответа

В системах, производных от Debian, даже если для PrintMotd установлено значение no в sshd_config ], MOTD по-прежнему представлен как часть конфигурации PAM.

Например, в моей системе Ubuntu (и, следовательно, на основе Debian) в моем / etc / pam.d / sshd , я вижу:

# Print the message of the day upon successful login.
# 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
session    optional     pam_motd.so noupdate

Их комментирование может подавить сообщение, которое вы пытаетесь удалить.

6
27.01.2020, 23:14

Попробуйте touch ~ / .hush_login на удаленном хосте, чтобы подавить motd и некоторые другие вещи. Лучше, чем вмешиваться в конфигурацию sshd IMO.

1
27.01.2020, 23:14

Теги

Похожие вопросы