원격 소스의 동적 motd 메시지?

원격 소스의 동적 motd 메시지?

다양한Linux 사용자에게 환영 로그인 메시지를 표시할 수 있습니다.

일부 원격 URL을 가져오는 방식으로 motd를 구성할 수 있습니까?

예시 시나리오:

  • Python 2의 수명 종료에 대해 사용자에게 알리되 기한이 지나면 알림을 중지하세요.

  • Python2가 설치되어 있지 않으면 이 메시지를 억제합니다.

더 복잡한 시나리오 예:

  • 인수를 전달하고 이를 동적으로 평가한 후 이 OS가 더 이상 지원되지 않음을 사용자에게 알립니다.

답변1

시스템 전체 메시지의 경우 motd는 부팅 시 생성될 수 있습니다. 이는 현재 Ubuntu와 Debian이 수행하는 방식입니다. update-motd표준 헤더, 팁, 공지 사항, 시스템 업데이트 메시지 등에서 텍스트 파일을 조합하는 시스템이 있습니다 .

대부분의 경우 motd는 이름이 지정된 PAM 모듈로 표시됩니다 pam_motd. (Debian/Ubuntu 시스템은 실제로 모듈을 두 번 호출하여 작동합니다. 먼저 정적 /etc/motd에 대해 호출한 다음 자동 생성된 /run/motd에 대해 호출합니다.)

따라서 더 많은 동적 텍스트(예: 로그인한 사용자 이름 기반)가 필요한 경우 이 모듈의 고유한 버전을 만들어 원하는 작업을 수행하도록 할 수 있습니다.

하지만,하지 마라웹에서 직접 파일을 검색하도록 하세요. 그렇게 하면 로그인 속도가 느려지고 매번 사용자를 짜증나게 할 뿐입니다. 대신 파일을 다운로드하는 cronjob을 설정한 다음 파일 이름을 매개변수로 사용하여 기존 pam_motd 모듈을 호출하기만 하면 됩니다.

session optional pam_motd.so motd=/tmp/downloaded_message.txt

답변2

/etc/motd그냥 정적 텍스트 파일입니다.

당신이 말하는 것은 로그인 스크립트로 구현할 수 있는 것과 비슷해 보입니다.

/etc/profile.d최신 Linux 배포판 에는 사용자가 로그인할 때 실행할 스크립트 조각을 넣을 수 있는 디렉토리가 있는 경향이 있습니다 . 모든 일반적인 셸을 다루려면 이러한 스크립트 조각의 두 가지 변형을 생성해야 합니다. 하나는 접미사가 /bin/sh있는 POSIX와 호환됩니다. .sh, 그리고 다른 하나는 접미사 csh가 있는 구문을 사용합니다 .csh.

이전 배포판의 경우 원하는 기능을 /etc/profile/etc/csh.login(각각 모든 POSIX sh호환 셸 및 csh/ tcsh셸용)에 추가할 수 있습니다.

특정 원격 URL에 접속하고 원격 엔드가 맞춤형 메시지 텍스트로 구문 분석하고 응답할 수 있는 사용자 정의 HTTP 헤더와 같은 일부 관련 시스템 정보를 추가하는 스크립트를 확실히 만들 수 있습니다.

그러나 원격 URL에서 반환된 응답이 일반 텍스트가 아니라 잠재적으로 실행 가능한 콘텐츠를 포함하는 경우 이 메커니즘은 보안에 민감해집니다. 원격 URL(또는 네트워크 또는 로그인 스크립트 자체)을 포함하는 서버가 안전하지 않은 경우 이는 침입자가 시스템에 접근하는 수단이 될 수 있습니다. 이를 방지하려면 구현에 훨씬 더 주의해야 합니다.

또한 원격 URL에 연결할 수 없는 것으로 판명되거나 네트워크 링크가 다운된 경우 어떤 일이 발생하는지 생각해야 합니다. 대부분의 오류 상황에서는 메시지 시스템이 시간 초과되어 로그인이 계속되도록 할 수 있습니다.

관련 정보