시스템이 정상적으로 부팅이 되면 시스템은 사용이 가능하다. 이 때 시스템에 계정이 있는 사용자라면 시스템에 로그인을 할 수 있다. UNIX 시스템에 로그인 한다는 것은 해당 시스템의 사용자 영역으로 접속을 하는 것을 의미한다. 이때 로그인을 하기 위해서는 보이지 않는 여러 가지 작업이 일어나는데 그 내용은 다음과 같다.
로그인을 하게 되면 login 및 shell 프로그램이 자동적으로 변수들을 설정하고 해당 프로그램을 수행한다.
[1] login 프로그램
1. 시스템에 접속이 되면, ‘login :’ 프롬프트 출력(시스템에 세션이 맺어졌음)
2. 자신의 사용자 계정(lognmae)과 비밀 번호(password)를 입력
*) /etc/shadow 파일에 등록된 정보와 일치하는지 이를 검증
*) /etc/shadow 파일은 사용자 계정과 각 계정에 대한 암호를 가지고 있고, 각 계정에 대한 암호(password)는 암호화(encryption)되어 있다.
3. 로그인 디렉토리로 이동
*) /etc/passwd 파일로부터 로그인 하는 디렉토리 명을 읽고 해당 디렉토리로 작업 디렉토리를 이동
4. HOME, MAIL, PATH, LOGNAME 변수를 정의(set)
5. shell(shell) 프로그램을 실행한다.
/bin/sh, /bin/ksh, /bin/csh
[2] 기본 환경 파일의 실행
1. 기본적인 setup 파일인 /etc/profile을 수행
® 날짜 및 메시지를 출력(Display)
® 뉴스(news)나 우편(mail)의 유무를 조사
® 기타 변수들을 정의
® 기타 시스템 관리자가 정의한 setup을 수행
2. 각각 로그인 shell에 맞는 환경 파일을 수행한다.
C shell의 경우에는 ${HOME}/.login, ${HOME}/.cshc
3. etc/profile은 shell에 관계없이 각각의 shell 환경 파일이 실행 되기 이전에 실행한다.
사용자가 시스템에 로그인을 하기 위해서는 위와 같이 보이지 않는 작업을 수행한다. 이 작업은 사용자의 ID와 패스워드가 일치하는지 검색하고 관련 환경의 구축과 설정을 하는 데는 순간적이다. 이 로그인을 하는 과정을 잘 이해를 해두면 리모트 시스템에 접근을 했을 때 UNIX 시스템이 보이지 않게 동작하는 환경을 쉽게 이해하여 UNIX ttmxpa을 사용하는데 많은 도움을 줄 것이다.
다음의 예는 PC에서 telnet으로 시스템에 접속하여 loveman의 계정으로 로그인하는 것을 보여주고 있다.
login: loveman
Password:
Last login: Sat Dec 11 11:52:48 on console
Sun Microsystems Inc. SunOS 5.5.1 Generic May 1996
You have new mail.
HELLO root
WELCOME TO LGS
Today is 1999 12 11 05 08 11
Love1004# date
1999년 12월 11일 05시 08분 15초
love1004# w
5:05pm up 11 day(s), 20:48, 3 users, load average: 0.12, 0.13, 0.13
User tty login@ idle JCPU PCPU what
root pts/3 3Dec99 7:41 rlogin XX160
root pts/4 12:59pm 10 w
root pts/5 Fri 5pm 23:41 telnet 156.147.7.252