강좌
클라우드/리눅스에 관한 강좌입니다.
자격증 분류

리눅스마스터1급 : 리눅스 설정파일과 로그인과정

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: 리눅스 설정파일과 로그인과정

 





1) 설정 파일

 

설정 파일의 종류와 로그인 과정쉘은 환경 설정 파일을 가지고 있다.

 

 

 

 

이 파일에는 시스템 구동시와 사용자의 로그인 또는 로그아웃시 이루어져야 할 작업이나 쉘의 동작 설정 등의 내용이 포함된다.

 

 

 

 

이러한 사용자의 쉘 환경 설정 파일은 시스템 전역 설정 파일(/etc 디렉토리 아래에 위치하고 있는 profilebashrc이며, /etc/profile.d 디렉토리 아래에 확장된 파일들을 둔다)과 사용자별 설정 파일(.bash_profile, .bashrc, .bash_logout 3가지가 사용되고, 쉘에서의 작업 기록이 .bash_history에 남게 된다)로 나눌 수 있다.

 

 

 

 

 

 

리눅스 서버를 사용하기 위해서 사용자는 로그인을 한다.

 

 

 

 

이때 로그인을 하면 바로 Bash 쉘의 쉘 프롬프트가 콘솔(또는 터미널)에 나와서 명령어의 입력을 기다리고 있게 된다.

 

 

 

 

여기서 사용자가 로그인하여 쉘 프롬프트가 나오는 과정까지의 진행상황과 로그아웃 과정은 다음과 같다.

 

 

 

login : 프롬프트에서 사용자가 자기의 ID를 입력한다.

 

Password : 패스워드를 입력한다.

 

/bin/login 프로세스는 해당 사용자의 인증에 관련된 파일들(/etc/passwd, /etc/shadow, /etc/group )을 참조하여 해당 사용자의 기본정보(ID, password, UID, GID, 홈디렉토리, 사용쉘 등)들을 확인한다.

 

이들 정보를 이용하여 IDPassword의 입력이 정확할 경우에 /bin/login 프로세스는 해당 사용자의 사용쉘을 불러 들여서 사용자의 로그인 인증 과정이 끝났다고 알리고 리눅스 사용을 위한 쉘환경을 제공할 것을 요구한다.

 

 

 

 

이때 리눅스의 로그인쉘이 Bash 쉘이므로 거의 모든 사용자의 사용쉘로 Bash 쉘이 실행되는 것이다.

 

 

 

 

 

 

Bash 쉘은 해당 사용자에 대한 시스템 전체 환경을 제공하기 위하여 /etc/profile을 불러들여서 해당 사용자에게 적용한다.

 

Bash 쉘은 해당 사용자의 개인 환경 설정을 위하여 사용자의 홈디렉토리에 있는 .bash_profile을 불러들여 해당 사용자에게 적용한다.

 

 

 

 

만약 사용자의 홈디렉토리에 .bsah_profile이 존재하지 않는다면 사용자의 홈디렉토리에 있는 .bash_login 파일을 불러들여서 사용자에게 적용한다.

 

 

 

 

그리고 .bash_login 파일도 존재하지 않는다면 .profile을 사용자에게 적용한다.

 

 

 

 

이 세 파일의 적용은 .bash_profile > .bash_login > .profile의 순이며 이 세 파일 중 하나만 적용된다.

 

 

 

 

 

위의 과정이 끝나면 Bash 쉘은 사용자의 홈디렉토리에 .bashrc 파일이 있으면 이 파일을 불러들여 사용자에게 적용한다.

 

그리고 사용자의 홈디렉토리에 있는 .bashrc 파일에 의해 /etc/bashrc 파일이 있다면 이 파일을 불러들여 적용한다.

 

 

이 과정이 모두 끝난 후에 Bash 쉘은 사용자에게 리눅스 서버의 사용을 위한 쉘 프롬프트를 제공한다.

 

 

로그인했던 사용자가 모든 작업을 마치고 ‘exit’로 로그아웃을 할 때에는 사용자의 홈디렉토리에 있는 .bash_logout 이라는 파일을 불러들여서 적용한다.

 

 

 

 

 

/etc/profile, /etc/bashrc, /etc/profile.d/*.sh /etc/profile은 시스템 전역 초기화 파일로서 로그인 쉘에서 실행한다.

 

 

 

 

이것은 /etc/bashrc와 함께 시스템의 일반적인 설정을 하게 된다.

 

 

 

 

그러나 bashrc 파일보다는 이 파일이 조금 더 일반적으로 사용되는 설정 파일이다.

 

/etc/bashrc는 시스템 전반에 있어서 시스템 전체 환경과 시스템을 부팅할 때의 시작 프로그램들에 대한 설정, 로그인 셋업 기능들과 alias들에 대해서 정의하는 곳이다.

 

 

 

 

그렇지만, alias는 특별히 전체 설정을 하기 보다는 개별 사용자들에게 맡기는 것이 더 낫다고 보고 /etc/skel/.bashrc 파일에 필요한 설정을 해두도록 한다.

 

 

 

 

/etc/profile.d 디렉토리 아래에는 시스템의 내부의 각각의 설정을 sh라는 확장자를 가진 파일로 설정한다.

 

 

 

 

필요하다면 다른 설정들도 하나의 파일로 이곳에 확장해서 해줄 수 있다.

 

 

 

 

 

 

 

대화형(interactive)

대화형(interactive) 쉘은 표준입력과 표준출력 모두 터미널에 연결되어 있는 쉘 또는 시스템 시작시 -i 옵션을 주어 시작한 쉘이다.

 

 

 

 

bash가 대화형 모드일 때에는 쉘 스크립트나 시동 파일에서 두 가지 상태를 판단할 수 있도록 PS1 를 설정하고 $- i 를 포함한다.

 

 

 

 

 

.bash_profile, .bashrc, .bash_logout

 

.bash_profile은 각 사용자의 홈디렉토리에 존재하는 파일로서 사용자의 로그인 과정에서 /etc/profile 다음에 읽혀져서 개별적으로 적용되는 쉘 환경 설정 파일이다.

 

 

 

 

.bash_profile 파일에는 터미널 설정과 환경변수, 초기에 실행할 프로그램과 같은 항목들이 설정되고, 이 항목들은 사용자가 연결 중에 변경하지 않는 한 연결이 끊어질 때까지(로그아웃 할 때까지) 유지된다.

 

 

 

 

 

 

 

 

 

 

[freekgb@localhost ~]$ cat .bash_profile

# .bash_profile

 

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

 

# User specific environment and startup programs

 

PATH=$PATH:$HOME/bin

 

export PATH

unset USERNAME

 

export TMOUT

TMOUT=3600

[freekgb@localhost ~]$

 

 

 

 

 

 

 

 

 

 

.bashrc는 사용자가 정의한 변수, 알리아스(alias), 함수(function) 등과 같은 사용의 용이성을 위해 필요한 항목들이 있는 파일이다.

 

 

 

 

따라서 .bash_profile은 처음 로그인시에만 실행되는 것과 달리 .bashrc 파일은 쉘이 실행될 때마다 실행된다.

 

 

 

 

물론 .bash_profilesource 명령을 통해서 설정을 적용할 수 있다.

 

 

 

 

그리고 이 파일은 /etc/bashrc 이 있는 경우에 이 파일을 불러들여서 개별 사용자에게 적용한다.

 

 

 

 

 

 

 

 

[freekgb@localhost ~]$ cat .bashrc

# .bashrc

 

# User specific aliases and functions

 

# Source global definitions

if [ -f /etc/bashrc ]; then

. /etc/bashrc

fi

[freekgb@localhost ~]$

 

 

 

 

 

 

 

 

 

.bash_logout은 사용자가 로그아웃 할 때 실행할 것들에 대해 정의하는 파일이다.

 

 

 

 

이 파일 또한 사용자의 홈디렉토리에 존재하며 개별적으로 설정하여 사용할 수 있다.

 

 

 

 

 

 

기본 설정 파일에는 마지막에 clear 명령어가 있다.

 

 

 

 

그렇지만 이 파일에 로그아웃 시에 주의해야 할 사항 또는 로그아웃 시에 특별히 실행되어야 할 명령어들을 설정할 수 있다.

 

 

 

 

, 사용자에 의해 사용되었던 임시파일들을 삭제하고 명령어 히스토리(command history)를 저장하고, /var/log/wtmp 파일에 로그아웃 시간정보를 기록하는 등의 실행 설정이 가능하다.

 

 

 

 

 

 

 

 

 

 

[freekgb@scitech ~]$ cat .bash_logout

# ~/.bash_logout

 

clear

[freekgb@localhost ~]$

 

 

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,291 명
  • 현재 강좌수 :  36,952 개
  • 현재 접속자 :  500 명