2013년 8월 21일 수요일

리눅스 로그인 메시지 만들기

리눅스 서버를 사용하면
그 서버를 사용하는 사용자들에게 공통으로 정보를 제공해 주어야할 때가 있다

리눅스에서는 로그인할 때 다음 3개의 파일에서 접속자들에게 메시지를 보여줄 수 있다

/etc/issue.net  - 외부에서 접근한 로그인 시 출력
/etc/issue        - 내부에서 접근한 로그인 시 출력
/etc/motd        - 로그인 후 보여주는 화면

이번 블록는 /etc/motd 파일을 수정해서 로그인 사용자들에게 메시지를 출력하는 것이다

보통 리눅스 접속은 ssh, 콘솔, CUI 환경으로 접속할 경우가 많기 때문에
해당 파일을 순서대로 수정한다

/etc/ssh/sshd_config
PrintMotd
부분이 있을 것이다.
yes 로 변경 후 # 주석처리를 제거한다

로그인 후 강제실행할 쉘을 만들어서 해당 파일을 지정해야 한다
/etc/profile
해당 파일을 열어서 강제 실행이 되는 쉘, 로그인 시 메시지를 출력할 쉘의 위치를 지정한다
리눅스 공통 관리 위치를 지정했다
/usr/local/bin/dynmotd
/etc/profile 파일 내 내가 메시지를 출력할 쉘 파일 위치를 적고서 저장하고 나온다

이제는 로그인 후 보여주는, 메시지 출력하는 파일을 열어서 작업을 수행한다
여기는 쉘 스크립트로 작업을 해야한다


#!/bin/bash
echo ' '
echo -e '\033[41m서버에 접속한 것을 환영합니다\033[0m'

hostname=`hostname`
echo -e '\033[36mHostName    = \033[0m' '\033[32m'$hostname'\033[0m'

osinfo=`lsb_release -d | awk -F':' '{print $2}' | sed -e 's/\t//g'`
echo -e '\033[36mOS info     = \033[0m' '\033[32m'$osinfo'\033[0m'

kernelinfo=`uname -r`
echo -e '\033[36mLinuxKernel = \033[0m' '\033[32m'$kernelinfo'\033[0m'

kernelmac=`uname -m`
echo -e '\033[36mHW Machine  = \033[0m' '\033[32m'$kernelmac'\033[0m'

CPU=`cat /proc/cpuinfo | grep "model name" | head -n 1 | awk -F ':' '{print $2}'`
echo -e '\033[36mCPU info    =\033[0m' '\033[32m'$CPU'\033[0m'

echo -e '\033[33m----------------------------------------------------------------------\033[0m'

Username=`whoami`
echo -e '\033[36mUserName    = \033[0m' '\033[32m'$Username'\033[0m'

echo -e '\033[36mUserHomeDir = \033[0m' '\033[32m'$HOME'\033[0m'

whoami=`whoami`
Lastlogin=`lastlog | grep $whoami | tail -n 1`
echo -e '\033[36mLastLogin   = \033[0m' '\033[32m'$Lastlogin'\033[0m'

echo -e '\033[33m----------------------------------------------------------------------\033[0m'

bashver=`bash --version | head -n 1`
echo -e '\033[36mBash Ver.   = \033[0m' '\033[32m'$bashver'\033[0m'

gccver=`gcc --version | head -n 1`
echo -e '\033[36mGCC Ver.    = \033[0m' '\033[32m'$gccver'\033[0m'

echo -n -e '\033[36mJavac Ver.  =  \033[0m\033[32m'
javaver=`javac -version`

svnver=`svn --version | head -n 1`
echo -e '\033[36mSVN Ver.    = \033[0m' '\033[32m'$svnver'\033[0m'

gitver=`git --version | head -n 1`
echo -e '\033[36mGIT Ver.    = \033[0m' '\033[32m'$gitver'\033[0m'

echo ' '



java 버전을 출력하는 것은 무슨 문제인지 다른 것들처럼 동일하게 처리가 되지 않아서 시간이 걸렸다

댓글 없음:

댓글 쓰기