신규 투입된 운영자가 어느 서버에 접속했는지 헷갈려 작업 대상을 착각하는 사고가 반복되어, 로그인 직후 호스트명과 커널 버전, 접속 날짜가 보이도록 배너를 띄우기로 했습니다. 다만 scp·rsync·cron 같은 비대화형 세션에서 배너가 섞여 나오면 전송이 깨지므로, /etc/profile.d/learnix-banner.sh 를 작성해 대화형 셸에서만 배너가 출력되게 만드세요.
bash 문법으로 작성하고, 출력은 echo 또는 printf 로 한다. 값 고정(하드코딩) 금지 — 반드시 명령 치환으로 생성할 것. 다른 파일(/etc/motd, ~/.bashrc 등)을 고쳐서 우회하지 말고 지정한 경로 하나로 해결한다.
1. /etc/profile.d/learnix-banner.sh 파일이 존재하고, 소유자가 root 이며 권한이 644 여야 한다.
2. 대화형 bash 셸에서 이 파일을 소싱하면, 그 서버의 호스트명·실행 중인 커널 릴리스·오늘 날짜(YYYY-MM-DD 형식) 세 값이 모두 포함된 배너가 표준출력으로 나와야 한다.
3. 비대화형 bash 셸에서 소싱하면 표준출력·표준에러 어디에도 아무 것도 출력되지 않아야 한다.
4. 세 값은 스크립트 실행 시점에 명령으로 얻어야 하며, 파일 안에 현재 호스트명·커널 릴리스·오늘 날짜 문자열이 그대로 적혀 있으면 안 된다.
5. 비대화형으로 소싱했을 때 반환 상태가 0 이어야 한다(로그인 과정이 실패하지 않도록).