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

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

SSH를 통해 로그인하자마자 브랜드 인사말을 표시하는 쉘로 bash를 사용하는 CentOS 5.7 VPS가 있습니다. 수정하려고 노력했지만 평소 위치에서는 찾을 수 없는 것 같습니다. 지금까지 파일을 살펴보고 배너파일 설정을 motd확인해보았습니다 . sshd_config배너 파일이 설정되지 않았습니다.

로그인 메시지는 어디에서 찾을 수 있나요?

답변1

전통적인 유닉스 시스템 디스플레이/etc/motd사용자가 성공적으로 인증된 후와 사용자의 셸을 호출하기 전입니다. 최신 시스템에서는 다양한 파일을 구성 하거나 표시 pam_motd할 수 있는 PAM 모듈을 통해 이 작업이 수행 됩니다./etc/pam.conf/etc/pam.d/*

/etc/motdPrintMotd이 옵션을 끄지 않으면 SSH 서버 자체가 인쇄하도록 구성되었을 수 있습니다 ./etc/sshd_config. 끄지 않으면 PrintLastLog마지막 로그인 시간도 인쇄될 수 있습니다.

You have new mail또 다른 전통적인 메시지는 그것이 또는 이라고 말할 수 있습니다 You have mail. PAM이 있는 시스템에서는 pam_mail모듈을 통해 이 작업이 수행됩니다. 일부 쉘은 사용 가능한 메일에 대한 메시지를 인쇄할 수 있습니다.

사용자의 셸을 시작한 후 사용자의 시작 파일은 추가 메시지를 인쇄할 수 있습니다. 대화형 로그인의 경우 사용자의 로그인 쉘이 Bourne 스타일 쉘인 경우 , /etc/profile, ~/.profileplus ~/.bash_profile및 에서 ~/.bash_loginbash를 찾으십시오. zsh를 사용한 대화형 로그인에 대해서는 /etc/zprofile, /etc/zlogin, 및 를 /etc/zshrc참조 하세요 . csh에 대화형으로 로그인하려면 및 를 참조하세요 .~/.zprofile~/.zlogin~/.zshrc/etc/csh.login~/.login

사용자의 로그인 쉘이 bash이고 이것이 비대화형 로그인인 경우 bash가 실행됩니다 ( 대화형 쉘은 쉘이 로그인 쉘이 아닌 경우에만 실행되기 ~/.bashrc때문에 이것은 정말 이상합니다 ). ~/.bashrc이는 문제의 원인이 될 수 있습니다 ~/.bashrc. 셸이 대화형이 아닐 때 문제를 해결하려면 맨 위에 다음 코드를 추가하는 것이 좋습니다.

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

답변2

몇 가지가 있습니다:

/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

답변3

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

사용자 정의를 00다음 우선순위의 다른 파일로 추가하세요.99

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

답변4

확인하실 수 있습니다 /etc/shell. 거기에서 변경을 시도한 메시지를 발견했습니다. "#"으로 주석을 달면 작동하지 않습니다. 텍스트를 삭제하고 직접 추가하면 됩니다. 공백과 새 줄은 파일에 넣을 때도 나타납니다.

관련 정보