지난 시간에 uid/gid를 공부하면서 모양이 다른 쉘을 접하게 되었는데,
오늘은 이 쉘에 대해 알아봅시다
passwd 파일을 알아보자
모양이 다른 쉘을 알기 전에 /etc/passwd 파일을 확인해 봅시다
/etc/passwd 파일은 리눅스 시스템에 등록된 계정 정보가 담긴 파일입니다
명령어를 실행해 보니 계정이 엄청 많습니다 /etc/passwd 파일에는 리눅스 계정 하나당 한 줄씩 정보가 저장됩니다.
그래서 사진과 같이 한 줄씩 계정이 존재하는 겁니다 맨 위에 있는 root 계정에서 각각 어떤 의미를 가지는지 알아봅시다
각 줄은 : (콜론)을 기준으로 데이터를 구분합니다
(1) 계정 이름 : 우리가 만든 계정 아이디입니다
(2) 비밀번호 : 현재 비밀번호 자리에 x라고 표시되어 있는데, 예전 리눅스에서 /etc/passwd에 비밀번호가 저장되었습니다. 이 위치가 x라고 표시된 자리입니다. 누군가 /etc/passwd 파일을 몰래 가져가버리면 이 리눅스에 있는 전체 계정의 비밀번호가 노출되기 때문에 비밀번호에 자리를 x로 대체한 뒤 이 정보들을 다른 파일로 옮겨놨습니다 그 파일이 /etc/shadow라는 파일입니다
만약 /etc/shadow 파일이 도난당하면 예전 /etc/passwd이랑 똑같지 않나?라고 생각하실 텐데, 이 /etc/shadow 파일을 얻더라도 비밀번호를 쉽게 알아낼 수 없게 HASH(일반향함수)로 처리해 놨습니다
자세한 건 구글링을 통해 확인해 보세요
(3) uid : 컴퓨터가 인식하는 사용자 ID입니다 (user ID)
(4) gid : 컴퓨터가 인식하는 그룹 ID입니다 (group ID)
(5) 사용자 정보 : Comment 필드라고 해서 사용자의 정보들이 저장되는 위치입니다. 보통 계정 이름, 사용자 전체 이름이 여기에 들어갑니다
(6) Home 디렉터리 : 기본적으로 계정을 생성할 때, 홈 디렉터리를 직접 지정하거나 저절로 만들어집니다
(7) 로그인 쉘 : 계정에게 제공되는 기본 쉘입니다 터미널을 켜거나, 로그인했을 때 제공되는 기본 쉘을 의미합니다.
root의 기본쉘은 zsh로 지정되어 있습니다
다른 계정을 살펴보니 홈 디렉터리와 로그인 쉘이 이상한 계정이 보입니다
이 계정은 리눅스가 자기가 사용하는 프로세스들을 관리하기 위해 만든 계정이고, 각각의 계정이 맡은 역할들이 들어 있습니다 그래서 로그인 쉘을 보면 nologin이라고 표시되어 있는데 nologin으로 표시된 계정은 들어갈 수 없습니다
nologin으로 설정된 계정으로 전환하거나 로그인하려고 하면 위와 같은 메시지가 나옵니다
그다음 /etc/passwd의 맨 아래를 보면 kali 계정과 지난 시간에 생성한 musa 계정이 보입니다
하지만 두 계정에 로그인 쉘이 다릅니다 kali는 zsh이고, musa는 sh입니다
sh는 그냥 아무것도 없는 순수한 원시적인 쉘입니다 그래서 지난 시간에 봤던 것처럼 굉장히 밋밋합니다
이제 kali 계정으로 전환해서 root 계정의 차이점을 알아봅시다
계정 전환 후 root 계정과 다르게 색깔이 바뀌었습니다
kali는 명령어 입력하는 곳이 $(달러)로 바뀌었습니다
리눅스에서 일반 사용자 계정의 쉘에서는 $(달러) 기호로 표현됩니다
root(최고관리자) 계정의 경우 $이 아닌 #(샵) 기호가 나옵니다
그래서 #으로 표시되는 쉘은 쉘 모양만 봐도 root인 걸 알 수 있습니다
다음 시간에는 계정 별로 리눅스가 어떻게 권한을 부여하는지 알아봅시다
[ 참고 사이트 ]