Linux 에서 특정 사용자 셸 설정 확인 방법

LinuxBeginner
지금 연습하기

소개

이 랩에서는 Linux 에서 특정 사용자의 기본 셸을 확인하는 방법을 배우게 됩니다. 셸은 명령을 처리하는 명령줄 인터프리터이며, 서로 다른 사용자는 서로 다른 기본 셸을 가질 수 있습니다.

/etc/passwd 파일을 탐색하여 사용자의 기본 셸을 식별하고, chsh -l 명령을 사용하여 시스템에서 사용 가능한 셸을 나열하는 방법을 이해하며, getent passwd 명령을 사용하여 사용자의 셸 정보를 확인하는 방법을 배우게 됩니다. 이 랩은 Linux 에서 사용자 구성을 이해하기 위한 기본적인 지식을 제공합니다.

cat /etc/passwd로 사용자 셸 확인

이 단계에서는 Linux 에서 사용자의 기본 셸을 확인하는 방법을 배우게 됩니다. 셸은 명령을 처리하는 명령줄 인터프리터입니다. 서로 다른 사용자는 서로 다른 기본 셸을 가질 수 있습니다.

/etc/passwd 파일에는 시스템의 모든 사용자에 대한 정보가 포함되어 있습니다. 이 파일의 각 줄은 사용자를 나타내며 콜론 (:) 으로 구분된 필드로 구성됩니다. 각 줄의 마지막 필드는 사용자의 기본 셸을 지정합니다.

cat 명령을 사용하여 /etc/passwd 파일의 내용을 표시할 수 있습니다.

아직 열려 있지 않은 경우 터미널을 엽니다. 데스크탑 왼쪽에서 Xfce 터미널 (Xfce Terminal) 아이콘을 찾을 수 있습니다.

이제 다음 명령을 입력하고 Enter 키를 누르십시오.

cat /etc/passwd

이 명령은 /etc/passwd 파일의 전체 내용을 터미널에 출력합니다. 시스템의 각 사용자 계정에 해당하는 많은 줄을 보게 됩니다.

labex:로 시작하는 줄을 찾으십시오. 이것은 현재 사용자에 대한 항목입니다. 줄은 다음과 유사하게 보일 것입니다 (일부는 다를 수 있음):

labex:x:5000:5000:LabEx user,,,:/home/labex:/usr/bin/zsh

필드는 다음과 같습니다.

  1. 사용자 이름 (Username): labex
  2. 비밀번호 자리 표시자 (Password placeholder): x (실제 비밀번호 해시는 보안을 위해 다른 곳에 저장됨)
  3. 사용자 ID (UID): 5000
  4. 그룹 ID (GID): 5000
  5. 사용자 정보 (GECOS): LabEx user,,,
  6. 홈 디렉토리 (Home Directory): /home/labex
  7. 기본 셸 (Default Shell): /usr/bin/zsh

이 경우 labex 사용자의 기본 셸은 /usr/bin/zsh입니다. 이는 현재 사용하고 있는 터미널이 실제로 zsh임을 확인합니다.

/etc/passwd 파일을 이해하는 것은 Linux 시스템 관리에 기본입니다. 기본 셸 및 홈 디렉토리를 포함하여 사용자에 대한 기본 정보를 얻는 빠른 방법을 제공합니다.

다음 단계로 진행하려면 **계속 (Continue)**을 클릭하십시오.

chsh -l 로 사용 가능한 셸 목록 확인

이전 단계에서 기본 셸이 /usr/bin/zsh임을 확인했습니다. 그렇다면 이 시스템에서 사용할 수 있는 다른 셸은 무엇일까요?

Linux 시스템에는 종종 여러 셸이 설치되어 있습니다. -l 옵션과 함께 chsh 명령을 사용하여 사용 가능한 셸을 나열할 수 있습니다.

chsh 명령은 일반적으로 사용자의 로그인 셸을 변경하는 데 사용되지만, -l 옵션을 사용하면 /etc/shells 파일에 나열된 셸을 나열할 수 있습니다. 이 파일에는 시스템에서 유효한 로그인 셸 목록이 포함되어 있습니다.

터미널에서 다음 명령을 입력하고 Enter 키를 누르십시오.

chsh -l

이 명령은 각 시스템에서 사용 가능한 셸을 나타내는 경로 목록을 출력합니다. 출력은 다음과 유사하게 보일 것입니다.

/bin/sh
/bin/bash
/usr/bin/rc
/usr/bin/rbash
/usr/bin/nologin
/bin/false
/usr/bin/zsh
/usr/bin/ksh
/usr/bin/dash

이 목록에서 /usr/bin/zsh를 볼 수 있으며, 이는 이 시스템에서 유효한 셸임을 확인합니다. /bin/bash (Bourne Again SHell) 및 /bin/sh (Bourne SHell) 와 같은 다른 일반적인 셸도 볼 수 있습니다.

사용 가능한 셸을 이해하는 것은 기본 셸을 변경해야 하거나 특정 셸용으로 작성된 스크립트를 접하는 경우 유용합니다.

다음 단계로 이동하려면 **계속 (Continue)**을 클릭하십시오.

getent passwd 로 셸 확인

이전 단계에서 /etc/passwd 파일을 직접 보고 사용 가능한 셸을 나열하는 방법을 배웠습니다. 이제 getent라는 다른 명령을 사용하여 셸을 포함한 사용자 정보를 검색해 보겠습니다.

getent 명령은 /etc/passwd, /etc/group 등을 포함할 수 있는 Name Service Switch (NSS) 데이터베이스에서 항목을 가져오는 유틸리티입니다. /etc/passwd를 직접 읽는 것보다 사용자 정보를 검색하는 더 표준화된 방법이며, 네트워크 기반 사용자 데이터베이스도 쿼리할 수 있습니다.

passwd 데이터베이스에서 labex 사용자에 대한 항목을 가져오려면 터미널에 다음 명령을 입력하고 Enter 키를 누르십시오.

getent passwd labex

이 명령은 passwd 데이터베이스에서 labex 사용자에 대한 항목을 특별히 요청합니다. 출력은 cat /etc/passwd를 사용할 때 보았던 줄과 유사합니다.

labex:x:5000:5000:LabEx user,,,:/home/labex:/usr/bin/zsh

다시 말하지만, 마지막 필드 /usr/bin/zshlabex 사용자의 기본 셸을 확인합니다.

getent는 스크립트에서 또는 로컬 파일 대신 중앙 집중식 인증 시스템 (예: LDAP) 을 사용할 수 있는 시스템을 쿼리하는 데 자주 사용됩니다. 로컬 시스템에서 간단한 확인을 위해 cat /etc/passwdgetent passwd <username> 모두 작동합니다.

이제 Linux 에서 사용자 셸을 이해하기 위해 세 가지 다른 방법을 성공적으로 사용했습니다. /etc/passwd를 직접 보고, chsh -l로 사용 가능한 셸을 나열하고, getent로 사용자 정보를 쿼리했습니다.

이 랩을 완료하려면 **계속 (Continue)**을 클릭하십시오.

요약

이 랩에서는 Linux 에서 사용자의 기본 셸을 확인하는 방법을 배웠습니다. cat /etc/passwd 명령을 사용하여 사용자 정보를 표시했으며, 특히 기본 셸을 나타내는 각 줄의 마지막 필드에 중점을 두었습니다. 이 방법은 /etc/passwd 파일 구조를 검사하여 시스템의 모든 사용자에 대해 구성된 셸을 식별하는 직접적인 방법을 제공합니다.