본문 바로가기
컴소니/리눅스

[리눅스] 로그인 쉘(login shell)과 비로그인 쉘(non-login shell)

by 금소니 2023. 1. 2.
반응형

#244

1. 로그인 쉘(login shell)과 비로그인 쉘(non-login shell)

1) 로그인 쉘(login shell)

시스템에 로그인을 통하여 접근하는 일반적인 쉘입니다.

 

2) 비로그인 쉘(non-login shell)

로그인 쉘로부터 파생되는 쉘로써 로그인이 아닌 다른 방식으로 떠있는 쉘입니다.

 

2. 로그인 쉘과 비로그인 쉘 확인 방법

로그인 쉘과 비로그인 쉘 확인 방법은 /etc/bashrc에 있는 명령을 참고하여 사용할 수 있습니다.

shopt login_shell

shopt 명령은 쉘의 정보를 조회하거나 설정을 변경할 수 있습니다.

 

1) 로그인 쉘

2) 비로그인 쉘

3. 로그인 쉘과 비로그인 쉘의 차이점

로그인 쉘과 비로그인 쉘의 차이점은 앞서 포스팅한 환경설정 파일을 적용하는데 있습니다.

 

[리눅스] 환경설정 파일 적용 순서 알아보기(~/.bashrc, ~/.bash_profile)

#243 1. 리눅스 환경설정 파일 종류 1) /etc/profile 로그인 시 시스템 전체 환경(모든 사용자)에 적용되는 환경설정 파일입니다. 전역변수를 선언할 때 사용되지만 root 권한이 필요하기 때문에 꼭 필

goldsony.tistory.com

로그인 쉘의 경우 /etc/profile, ~/.bash_profile의 환경설정 파일에 영향을 받지만 비로그인 쉘의 경우 영향을 받지 않습니다.

 

가장 기본적인 예로 umask입니다.

로그인 쉘은 umask값이 /etc/profile에 설정되어 있고 비로그인 쉘의 경우 /etc/bashrc에 설정되어 있습니다.

따라서 각각 설정에 따라 파일 및 폴더 생성 시 권한이 각각 다르게 설정될 수 있습니다.

 

1) /etc/profile에서 umask 값을 000으로 설정

로그인 쉘에서 파일 및 폴더 생성

비로그인 쉘에서 파일 및 폴더 생성

/etc/profile에서 umask 값을 수정한 후 로그인 쉘에서 생성한 파일 및 폴더와 비로그인 쉘에서 생성한 파일 및 폴더의 권한을 보시면 서로 다르다는 것을 보실 수 있습니다.

 

2) /etc/bashrc에서 umask 값을 000으로 설정

이번에는 bashrc에서 umask값을 000으로 설정해보겠습니다.

로그인 쉘에서 파일 및 폴더 생성

비로그인 쉘에서 파일 및 폴더 생성

위와 반대로 /etc/bashrc의 umask값을 수정하였을 때는 로그인 쉘은 영향을 받지 못하였고 비로그인쉘만 영향을 받았습니다.

로그인 쉘이 영향을 안 받은 건 /etc/bashrc에 작성된 아래 코드 때문에 그런 건데요. 그외의 부분에 대해서 로그인 쉘은 영향을 다 받습니다.

 

그래서 결론을 말씀드리자면 로그인 쉘은 모든 설정 파일에 영향을 다 받지만 비로그인 쉘은 /etc/bashrc, ~/.bashrc 파일만 영향을 받습니다.

 

비로그인 쉘에 설정이 필요하신 경우 /etc/bashrc 파일과 ~/.bashrc 파일을 이용하시기 바랍니다.

반응형

댓글