본문 바로가기

Server/linux공통

사용자의 기본로그인쉘종류를 설정하는 방법 chsh

사용자의 기본로그인chsh

CHange SHell 약어 (기본 사용 쉘: 로그인시 기본으로 사용되는 쉘)을 변경

 

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

우리가 기본적으로 사용하는 쉘 /etc/bash

쉘의 종류 확인하기 cat /etc/shells

 

 

chsh 는 기본사용쉘을 변경하는 명령어 (/etc/passwd에 지정 편집은 이파일을 vi 편집)

현재 사용중인 쉘을 일시적으로 변경하는 방법은 쉘에서 바로 "/bin/bash" 또는 "/bin/sh"등과 같이 실행하면된다.

절대 혼동해서는 않된다.(기본사용쉘과 현재 사용중인 쉘의 구분)

 

현재 사용중인 쉘 : 여러가지 쉘중에서 현재 일시적으로 사용하고 있는 쉘 (커맨드 echo $SHELL)

기본 사용 쉘 : /etc/passwd에 지정된 쉘

 

 

 

 

예제1) 기본사용쉘 확인

 [root@localhost ~]# grep super /etc/passwd
super:x:500:500:박성수,office,02-0000-0000,home call number:/home/super:/bin/bash 

 

예제1-2)사용자의 기본사용쉘(로그인쉘) 변경

 [super@localhost root]$ chsh
Changing shell for super.
암호:
Password error.
[super@localhost root]$ chsh
Changing shell for super.
암호:
New shell [/bin/bash]: /bin/sh
Shell changed.

[super@localhost root]$ grep super /etc/passwd
super:x:500:500:박성수,office,02-0000-0000,home call number:/home/super:/bin/sh

이렇게 설정하면 super로그인시 기본쉘이 /bin/sh 자동할당됨

 

 

예제2) -s 옵션을 이용 간단 기본사용쉘 변경

[super@localhost root]$ chsh -s /bin/bash
Changing shell for super.
암호:
Shell changed.

 

예제3) vi 편집기를 이용한 기본사용쉘 변경 (root 권한필요)

vi /etc/passwd

super:x:500:500:박성수,office,02-0000-0000,home call number:/home/super:/bin/bash

해당부분 수정

 

B. 사용 가능한 쉘의 종류 확인하기 chsh -l

chsh -l = cat /etc/shells

[super@localhost root]$ chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh

 

C. 기본사용쉘(로그인쉘)과 현재 사용중인 쉘에 대한 오해

현재 사용중인 쉘확인은 echo $SHELL

 

예제)현재 사용중인 쉘을 변경

[super@localhost root]$ echo $SHELL
/bin/bash
[super@localhost root]$ /bin/csh #c쉘로 변경
[super@localhost /root]$ /bin/sh #born쉘로 변경
sh-3.2$ 
sh-3.2$ 
sh-3.2$ exit # born쉘을종료
exit
[super@localhost /root]$ exit #c쉘을 종료
exit
[super@localhost root]$  #bash

 

*root 사용자는 비밀번호 입력없이 쉘변경이가능

 

 

쉘종류를 설정하는 방법 chsh