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

로그인쉘과 현재사용쉘에 대한 개념을 정리하자.

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

로그인쉘과 현재사용쉘에 대한 개념을 정리하자.

 

 

 

우리는 흔히 쉘(SHELL)이라고 하면 리눅스시스템에서 가장 대표적으로 사용되는 배쉬쉘(/bin/bash)을 얘기한다.

 

 

 

 그런데 이런 쉘의 종류는 여러 개가 있다는 것도 잘 알고 있다.

 

 

 

 , 현재 시스템에서 사용가능한 쉘의 종류를 확인하려면 /etc/shells파일을 확인해 보면 된다.

 

 

 

 

 

그런데 이런 얘기를 들어보았는가? 로그인쉘과 지금 내가 사용하고 있는 현재 사용쉘이 다를 수 있다는 것을 들어보았는가? 물론 특별한 경우가 아니면 이 둘은 동일하다.

 

 

 

 그런데 문제는 이 두가지가 다른 경우가 있다는 것이다.

 

 

 

 

 

필자는 지금부터 여러분들과 함께 이에 대하여 하나씩 풀어보도록 할 것이다.

 

 

 

 이를 위하여 먼저 로그인쉘을 변경하는 chsh에 대해서 알아보도록 하자.

 

흔히 chsh라는 명령어가 사용중인 쉘을 변경하는 것이라고 설명되는 경우가 종종 있는데  이것은 명백하게 잘못된 설명이다.

 

 

 

 chsh는 기본사용쉘을 변경하는 명령어이며 현재 사용중인 쉘을  일시적으로 변경하는 방법은 쉘에서 바로 “/bin/bash” 또는 “/bin/sh”등과 같이 실행하면 된다.

 

 

 

 절대 혼동해서는 안된다.

 

 

 

 누군가 chsh가 현재 사용중인 쉘을 변경하는 명령어라고 말한다면 이것은 잘못된 설명이므로 여러분들께서 바로 잡아주기 바란다.

 

 

 

 

다시 정리하여 강조한다면 다음과 같다.

 

 

 

 필자가 여기서 중요하게 설명하고자 하는 것은 기본사용쉘과 현재 사용중인 쉘의 구분이다.

 

 

 

 

 

 

필자는 기본사용쉘(로그인쉘)현재 사용중인 쉘의 구분이 굉장히 중요하다고 생각하기 때문에 잠깐 언급하도록 하겠다.

 

 

 

 

chsh
기본사용쉘(로그인쉘)을 변경하는 명령어라고 하였다.

 

 

 

 즉 여러가지 사용가능한 쉘의 종류 중에서 단 한가지를 지정하여 로그인시에 기본으로 지정하여 사용되는 쉘이 기본사용쉘이며, /etc/passwd의 마지막 필드에 지정되어 있으며, 이 기본사용쉘을 변경할 수 있는 명령어가 chsh인 것이다.

 

 

 

 (물론, vi를 이용하여 /etc/passwd파일을 직접 편집해도 된다.

 

 

 

)

그렇다면 현재 사용중인 쉘이란 여러가지 쉘중에서 현재 일시적으로 사용하고 있는 쉘을 의미하는 것이다.

 

 

 

 또한 현재 사용중인 쉘이 어떤 쉘인가를 확인하는 명령어가 위에서 설명드린 "echo $SHELL"이다.

 

 

 

 

 

로그인할 때에 기본으로 사용되는 쉘(로그인쉘)도 변경이 가능하다.

 

 

 

  chsh "CHange SHell"의 약어로서 사용자가 기본으로 사용하는 쉘(로그인쉘)의 종류, 즉 로그인시에 기본적으로 사용되는 쉘의 종류를 변경하고자 할 때에 사용하는 명령어이다.

 

 

 

 

 

이 기본사용쉘(로그인쉘) /etc/passwd파일의 각행 마지막 필드에 지정되어 있다.

 

 

 

 chsh로 기본사용쉘을 변경하게 되면 /etc/passwd파일 내 해당사용자 설정행의 마지막 필드에 변경될 쉘이 바뀌게 된다.

 

 

 

 

 

먼저 /etc/passwd에서 bible이라는 사용자의 기본사용쉘을 확인한다.

 

 

 

 

 

[bible@sulinux ~]$ grep bible /etc/passwd

bible:x:500:500::/home/bible:/bin/bash

[bible@sulinux ~]$



 

위의 예는 bible이라는 사용자의 기본사용쉘인 /bin/bash를 확인한 것이다.

 

 

 

 그리고 아래는 chsh를 이용하여 bible사용자의 기본사용쉘(로그인쉘)을 변경한 것이다.

 

 

 

 

 

[bible@sulinux ~]$ chsh

Changing shell for bible.

암호: ********

New shell [/bin/bash]: /bin/sh    

Shell changed.

[bible@sulinux ~]$



 

위에서 bible이라는 사용자는 /bin/bash (Bash Shell)를 기본사용쉘로 사용하고 있었으나 /bin/sh (본쉘)로 변경한 것이다.

 

 

 

  위의 예에서 확인한 바와같이 자기자신의 사용쉘을 변경할 경우에도 자기자신의 패스워드를 입력해줘야 한다.

 

 

 

 

이렇게 변경된 이후부터는 로그인 할 때마다 /bin/bash(Bash Shell) 대신에 /bin/sh이 자동 할당된다.

 

 

 

 

변경되고 난 이후에 변경 전에 확인했던 바와 같이 /etc/passwd 파일에서 bible이라는 사용자의 기본사용쉘을 확인하였다.

 

 

 

 

 

[bible@sulinux ~]$ grep bible /etc/passwd

bible:x:500:500::/home/bible:/bin/sh

[bible@sulinux ~]$

 

 

 

위의 결과를 본바와 같이 bible이라는 사용자의 기본사용쉘이 /bin/bash (Bash Shell)에서 /bin/sh로 변경되어 있다는 것을 확인하였다.

 

 

 

  참고로 다음과 같이 간단히 -s라는 옵션을 사용하여 변경할 수도 있다.

 

 

 

 

 

[bible@sulinux ~]$ chsh -s /bin/bash

Changing shell for bible.

암호: ********

Shell changed.

[bible@sulinux ~]$

 

 

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,038 명
  • 현재 강좌수 :  35,813 개
  • 현재 접속자 :  110 명