반응형
로그인 셸과 비로그인 셸
리눅스에서 로그인 셸(Login Shell)이란 사용자가 시스템에 로그인할 때 처음으로 실행되는 셸을 의미한다. 이는 사용자 세션을 시작하는 셸로, 보통 시스템에 처음 접속할 때 환경 설정 파일을 로드하고 사용자 환경을 초기화하는 역할을 한다. 로그인 셸은 사용자 인증 후 시작되며, 시스템의 상태에 따라 여러 초기화 작업을 수행한다.
로그인 셸의 특징
- 환경 설정 파일 로드: 로그인 셸은 일반 셸과 달리 특정 환경 설정 파일들을 우선적으로 로드한다. 이 파일들은 사용자별 환경 설정, 시스템 전역 설정, 경로 설정 등을 정의한다. 주로 사용되는 설정 파일은 다음과 같다:
/etc/profile
: 시스템 전체에 적용되는 환경 설정 파일로, 모든 사용자에게 공통적으로 적용된다.~/.bash_profile
,~/.bash_login
,~/.profile
: 개별 사용자의 환경 설정 파일로, 사용자가 로그인을 할 때만 실행된다. 이 중 하나만 로드되며, 우선순위는~/.bash_profile
>~/.bash_login
>~/.profile
순이다.
- 사용자 세션 시작: 로그인 셸은 시스템 로그인 후 사용자 세션을 시작하는 첫 번째 프로세스이기 때문에, 사용자 환경을 초기화하고 각종 설정을 적용한다. 사용자가 로그아웃하거나 세션이 종료되면, 로그인 셸도 함께 종료된다.
- 로그인 과정: 로그인 셸은 콘솔(터미널) 또는 SSH로 원격 접속할 때 시스템에 접근하는 가장 초기의 셸이다. 사용자는 로그인 시 패스워드를 입력하고, 인증이 완료되면 이 셸이 실행된다.
- 로그인 여부 확인:
bash
를 기준으로, 로그인 셸인 경우 셸 실행 시 첫 번째 인자로-
기호가 붙는다. 예를 들어,bash
의 경우 로그인 셸은-bash
로 표시된다.
로그인 셸과 비로그인 셸의 차이
로그인 셸과 비로그인 셸은 기본적으로 환경 설정 파일을 로드하는 방식에서 차이가 있다.
- 로그인 셸: 사용자가 로그인할 때 처음으로 실행되는 셸로,
/etc/profile
,~/.bash_profile
,~/.bash_login
,~/.profile
등의 파일을 로드한다. 이 파일들은 사용자 환경을 초기화하고, PATH 등의 환경 변수를 설정하는 데 사용된다. - 비로그인 셸: 이미 로그인한 사용자 세션에서 새로운 셸을 실행할 때 사용되는 셸이다. 비로그인 셸은 로그인 셸과 달리
~/.bashrc
파일을 로드하여 환경을 설정한다. 즉, 사용자가 터미널을 열 때마다 실행되는 셸은 비로그인 셸에 해당한다.
로그인 셸을 확인하는 방법
리눅스에서 현재 사용 중인 셸이 로그인 셸인지 비로그인 셸인지 확인하는 방법은 다음과 같다:
shopt login_shell
이 명령어를 실행했을 때 출력이 on
이면 로그인 셸을 사용 중인 것이고, off
이면 비로그인 셸을 사용 중인 것이다.
정리
로그인 셸은 리눅스에서 사용자가 시스템에 로그인할 때 처음 실행되는 셸을 의미하며, 사용자 환경 설정 파일을 로드하고 세션을 초기화하는 역할을 한다. 이는 비로그인 셸과 달리 사용자의 로그인 시점에 중요한 초기화 작업을 수행하며, 시스템 전역 설정이나 사용자 개인 설정을 적용하는 중요한 단계다.
반응형
'Linux > 리눅스 시스템 관리' 카테고리의 다른 글
대화형 조작(Interactive Use)과 셸 스크립트(Shell Script) (28) | 2024.10.22 |
---|---|
로그인 셸을 보려면 (18) | 2024.10.21 |
다른 운영체제의 커널과 셸이 관계, Windows와 macOS (18) | 2024.10.19 |
커널과 셸은 왜 나누었을까? (29) | 2024.10.18 |
리눅스 커널과 하드웨어의 관계 (20) | 2024.10.17 |