사용자가 로그인 한 후 메시지를 bash 쉘에 표시 할 수있는 다른 방법은 무엇입니까?


13

SSH를 통해 로그인 한 직후 브랜드 인사를 표시하는 bash를 쉘로 사용하는 CentOS 5.7 VPS가 있습니다. 나는 그것을 수정하려고했지만 평소에 어디에 있는지 찾을 수없는 것 같습니다. 지금까지 motd파일을 살펴보고 sshd_config배너 파일 ​​설정을 확인 했습니다. 배너 파일이 설정되지 않았습니다.

로그인 메시지가있는 위치를 다른 곳에서 찾을 수 있습니까?


1
메시지의 일부 하위 집합 grep/etc대해 재귀 를 시도 할 수 있습니다.
케빈

@Kevin 잠깐만, 트위터에서 날 따라와? 방금 grep -r을 사용하여 무언가를 찾았다 고 생각했습니다. 내가 doofus이고 / =)에서 시작하기로 결정
Wesley

나도 시작했는데 /1TB 디스크에서 영원히 가져 가서 말해 줄께 ...하지만 트위터에 본 적이 없다 :)
Kevin

@WesleyDavid 스크린 샷을 게시 할 수 있습니까?
칼슨

답변:


21

전통적인 유닉스 시스템 /etc/motd은 사용자가 성공적으로 인증 된 후 그리고 사용자의 쉘이 호출되기 전에 표시 됩니다. 최신 시스템에서는이 작업이 pam_motdPAM 모듈에서 수행되며 다른 모듈에서 구성 /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하면 자신에게 메시지를 보냅니다. 어떤 사람들은 로그인 할 때 유용하거나 재미있는 메시지를보고 싶어합니다. 메시지의 내용이나 관련된 사람과 환경을 알지 못하기 때문에 시스템의 루트 계정에 대해 말할 수 없습니다.
Gilles 'SO- 악마 그만해'

/ etc / motd에 메시지를 넣는 것은 Mac OS X에서 작동했습니다. 고마워
dgig

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표시되는 quips를 저장할 수 있기 때문에 해당 스크립트에서 호출되는 모든 프로그램을 수행해야 할 수도 있습니다 /usr/share. 그것을 분리하려면 다음을 수행하십시오.

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

우분투에는 파일도 있습니다.

/etc/motd.tail

1
/etc/issue전통적 으로 사용자가 로그인 하기 전에 표시 됩니다.
Chris Down

감사! 에 대해 몰랐 profileprofile.d. 아아, 네 가지 제안 모두 아무것도 나타나지 않았다. 커스텀 바이너리가 bash 바이너리로 컴파일되는지 궁금합니다.
웨슬리

@ChrisDown 그렇습니다.하지만 프롬프트가 표시된 후 화면에 아무것도 표시되지 않는 시스템은 없습니다.
Karlson

@WesleyDavid 나는 대답을 수정했습니다.
Karlson

모든 정보에 대해 대단히 감사합니다! 이것은 쉘이 TTY 세션에 정보를 보낼 수있는 다양한 방법을 배우는 데 많은 도움이되었습니다. =)
웨슬리

3

최신 시스템은 MOTD 구성 요소를 /etc/update-motd.d 로그인시 업데이트 정보, 시스템 경고 등을 갖도록 motd를 사용자 정의하기 위해 다양한 매크로를 실행할 수 있습니다.

에서 우선 순위가 다른 파일로 사용자 정의를 추가 0099

99-footer일반적으로 /etc/motd.tail끝까지 시공하는 것으로 충분하고 매크로 항목을 사용하지 않으려는 경우 로드 됩니다.


1

에서 살펴볼 /etc/shell수있는 메시지를 찾았습니다. "#"으로 주석 처리하는 것은 효과가 없습니다. 텍스트를 삭제하고 직접 추가해야합니다. 또한 파일에 공백과 줄 바꾸기를하면 나타납니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.