Які різні способи відображення повідомлення в bash shell після входу користувача?


14

У мене VOS CentOS 5.7, що використовує bash в якості оболонки, яка відображає фірмове привітання відразу після входу через SSH. Я намагався його змінити, але не можу знайти місце, де він знаходиться у звичайних місцях. Поки я заглянув у motdфайл і перевірив, чи sshd_configналаштовано файл банера. Файл банера не встановлено.

Де ще я можу шукати, де може бути повідомлення для входу?


1
Ви можете спробувати рекурсивні grepв /etcпротягом деякого підмножини повідомлення.
Кевін

@Kevin Зачекай, ти слідкуєш за мною на Twitter? Я просто задумався, що я використовую grep -r, щоб знайти щось. За винятком того, що я дурф і вирішив почати в / =)
Веслі

Я /теж почав , займає назавжди на 1 ТБ диск, дозвольте вам сказати ... Але я ніколи не був на Twitter :)
Кевін,

@WesleyDavid можете опублікувати скріншот?
Карлсон

Відповіді:


22

Традиційні системи Unix відображаються /etc/motdпісля успішної автентифікації користувача та до виклику оболонки користувача. У сучасних системах це робиться pam_motdмодулем PAM, який може бути налаштований /etc/pam.confабо /etc/pam.d/*відображати інший файл.

Сам ssh-сервер може бути налаштований для друку, /etc/motdякщо PrintMotdпараметр не вимкнено /etc/sshd_config. Він також може надрукувати час попереднього входу, якщо PrintLastLogйого не вимкнено.

Ще одне традиційне повідомлення може сказати вам, чи це, You have new mailчи You have mail. У системах з PAM це робиться pam_mailмодулем. Деякі оболонки можуть надрукувати повідомлення про доступну пошту.

Після запуску оболонки користувача файли запуску можуть надрукувати додаткові повідомлення. Для інтерактивного входу в систему , якщо Логін користувача оболонки оболонки Bourne-стиль, подивіться /etc/profile, ~/.profileплюс ~/.bash_profileі ~/.bash_loginдля Баш. Для інтерактивного входу в Zsh, дивитися в /etc/zprofile, /etc/zlogin, /etc/zshrc, ~/.zprofile, ~/.zloginі ~/.zshrc. Для інтерактивного входу в файл csh загляньте в /etc/csh.loginта ~/.login.

Якщо оболонка входу користувача є bash, і це неінтерактивний логін, тоді bash виконується ~/.bashrc(що справді незвично, оскільки ~/.bashrcвиконується для інтерактивних оболонок, лише якщо оболонка не є оболонкою для входу). Це може стати джерелом неприємностей; Я рекомендую включити наступний фрагмент у верхній частині, ~/.bashrcщоб вийти, якщо оболонка не є інтерактивною:

if [[ $- != *i* ]]; then return; fi

Це була серія відлуння у моєму .bash_profile. > _ <Це питання є оригінальним для оригіналу, але: Чи не повторюються речі у .bash_profile, як поганий спосіб надсилання повідомлення? Можливо, це краще, якщо ви хочете надсилати повідомлення лише одному користувачеві. Це, зрештою, кореневий рахунок. Потім я знову ноб, тому не можу занадто критично оцінювати речі.
Веслі

@WesleyDavid Щось повторюючи щось .bash_profileнадсилає лише повідомлення. Деяким людям подобається бачити корисні чи смішні повідомлення під час входу. Я не можу говорити за кореневий обліковий запис вашої системи, оскільки не знаю ні вмісту повідомлення, ні людей та налаштувань.
Жиль "ТАК - перестань бути злим"

Введення повідомлення в / etc / motd працювало на Mac OS X, і це все, що мені потрібно. Дякую за це.
дгіг

8

Є кілька:

/etc/motd
/etc/issue
/etc/profile - Could echo the message
/etc/profile.d/* - Would be called from /etc/profile

Додатково

/etc/bash_bashrc
/etc/.bashrc
/etc/bashrc
$HOME/.profile
$HOME/.bashrc

Можливо, вам також доведеться пройти кожну програму, яку викликають із цих сценаріїв, тому що щось на зразок fortuneможе зберігати квип, які вона відображає /usr/share. Щоб ізолювати його, ви можете зробити:

. /etc/profile
. /etc/bash.bashrc
. $HOME/.profile
. $HOME/.bashrc

На Ubuntu також є файл:

/etc/motd.tail

1
/etc/issueтрадиційно відображається до входу користувача, а не після нього.
Кріс Даун

Спасибі! Не знав про profileі profile.d. На жаль, усі чотири ваші пропозиції нічого не виявили. Мені цікаво, чи збирається щось на замовлення у бінарний біш ...?
Веслі

@ChrisDown Правильно, але я не знаю жодної системи, яка б щось ставила на екран після того, як з'явиться запит.
Карлсон

@WesleyDavid Я змінив відповідь.
Карлсон

Велике спасибі за всю інформацію! Це дало мені багато способу вивчення різних способів, якими оболонки можуть передавати інформацію на сеанси TTY. =)
Веслі,

3

Новіші системи зберігають компоненти MOTD /etc/update-motd.dтак, щоб можна було запускати різні макроси, щоб налаштувати motd, щоб інформація про оновлення, системні сповіщення тощо відображалися під час входу.

Додайте налаштування як інший файл з пріоритетом від 00до99

99-footerЗазвичай завантажується, /etc/motd.tailякщо приставити його до кінця достатньо, і ви не хочете використовувати жоден із елементів макросу.


1

Ви можете заглянути /etc/shell, саме там я знайшов повідомлення, яке намагався змінити. Не коментувати "#" вам просто потрібно видалити будь-який текст і додати свій власний. Також пробіли та нові рядки з’являться під час розміщення їх у файлі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.