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

리눅스마스터2급강좌 :쉘의 설정 파일 및 변경

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터2급강좌 :쉘의 설정 파일 및 변경

 

 

 

 

사용자가 사용하는 쉘 확인하기/etc/passwd 파일에서 사용자가 기본적으로 사용하는 쉘이 설정되어 있다.

 

 

 

 

마지막 항목(/bin/bash)이 사용자가 사용하는 쉘을 의미한다.

 

 

 

 

이 부분을 /bin/false로 변경하면, 명령어를 처리하는 쉘을 얻지 못하므로 어떤 명령도 수행할 수가 없게 되고 로그인도 할 수 없다.

 

 

 

 

 

# grep sulinuxer /etc/passwd

/sulinuxer:x:500:500::/home/sulinuxer:/bin/bash

 

 

 

 

그리고 사용 중인 로그인 쉘의 확인은 “echo $SHELL” 명령으로 할 수도 있다.

 

 

 

 

 

 

 

 

 

 

# echo $SHELL

/bin/bash

 

 

 

 

 

최초에 관리자가 사용자 계정을 만들면 사용자의 쉘을 선택한다.

 

 

 

 

그리고 사용자는 필요에 따라 쉘을 변경할 수 있다.

 

 

 

 

 

 

쉘의 변경사용하고자 하는 쉘을 변경하려면 먼저 사용중인 쉘을 확인한다.

 

 

 

 

그리고 사용자는 잠시 사용하고자 하는 쉘로 변경하기 위해 원하는 쉘의 이름을 이용하여 해당 쉘을 실행하면 된다(쉘을 종료할 때에는 exit 명령을 사용한다). 다음은 서브쉘로 쉘을 바꾸는 방법을 보여주고 있다.

 

 

 

 

 

 

 

 

 

 

[freekgb@localhost ~]$ echo $SHELL (현재 로그인쉘은 Bash )

/bin/bash

[freekgb@localhost ~]$ /bin/sh (본 쉘로 변경)

sh-3.2$ csh (C 쉘로 변경)

[freekgb@localhost ~]$ exit (C 쉘에서 빠져나가서 본 쉘 상태로 변경)

exit

sh-3.2$ exit (본 쉘에서 빠져나가서 Bash 쉘로 변경)

exit

[freekgb@localhost ~]$

 

 

 

 

 

만약 사용자가 로그인 쉘(기본사용 쉘)을 변경하려면, chsh 명령을 사용하거나 /etc/passwd 파일의 쉘 부분을 변경한다(이 경우 시스템에 재로그인 해야 변경된 사항이 적용된다).

 

chsh

“chsh(change shell)” 명령은 로그인 쉘의 변경을 위해 사용한다.

 

 

 

 

이 명령은 root 사용자 및 일반 사용자 모두 사용이 가능하다.

 

 

 

 

다음은 기본적인 명령의 형식이다.

 

 

 

 

 

chsh [ -s shell ] [ -l ] [ -u ] [ -v ] [ username ]

 

 

 

 

 

다음은 chsh 명령과 함께 사용할 수 있는 옵션들이다.

 

옵 션

기 능

-s, --shell

지정하는 쉘을 앞으로 사용할 로그인 쉘로 바꾼다.

-l, --list-shells

/etc/shells 파일 안에 지정된 쉘을 출력한다.

-u, --help

도움말을 출력한다.

-v, --version

버전 정보를 출력한다.

다음은 “chsh”를 사용하여 로그인 쉘을 변경하는 것이다.

 

 

 

 

쉘을 특별하게 지정하지 않았기 때문에 새로운 로그인 쉘로 무엇을 사용할 것인지 묻고 있다.

 

 

 

 

그렇지만 /etc/shells 파일에 없는 쉘을 지정하는 경우에는 경고 메시지를 출력한다.

 

 

 

 

그리고 이 명령을 내린 후에 이것이 적용되기 위해서는 다시 로그인해야 한다.

 

 

 

 

로그인쉘의 설정을 변경한 것이기 때문이다.

 

 

 

 

 

[freekgb@localhost ~]$ grep freekgb /etc/passwd

freekgb:x:574:500::/home/freekgb:/bin/bash

[freekgb@localhost ~]$ chsh

Changing shell for freekgb.

암호: ********

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

Shell changed.

[freekgb@localhost ~]$ grep freekgb /etc/passwd

freekgb:x:574:500::/home/freekgb:/bin/sh

[freekgb@localhost ~]$

 

 

 

 

 

chsh 명령에 -s 옵션을 사용하면 조금 더 간편하게 로그인 쉘을 변경할 수 있다.

 

 

 

 

 

 

 

 

 

 

[freekgb@localhost ~]$ chsh -s /bin/bash

Changing shell for freekgb.

암호: ********

Shell changed.

[freekgb@localhost ~]$

 

 

 

 

 

그리고 “chsh l” 명령을 통해 쉘의 종류를 확인하는 것이 가능한데, 이것은 /etc/shells 파일의 내용을 출력해 주는 것이다.

 

 

 

 

 

 

 

 

 

 

# chsh -l

/bin/sh

/bin/bash

/sbin/nologin

/bin/tcsh

/bin/csh

/bin/ksh

#

 

 

 

 

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,015 명
  • 현재 강좌수 :  35,688 개
  • 현재 접속자 :  188 명