[Linux] 리눅스(CentOS7)

[Linux] 리눅스 사용자 관리 파일 및 디렉터리

ITsubin 2022. 3. 1. 00:18

리눅스에서는 사용자 관리를 위해 필요한 파일들이 존재합니다.

 

아래 사진은 사용자 계정의 구조도입니다. 여러 파일이 상호작용하고 있음을 알 수 있습니다.

사용자 관리를 위한 파일들을 간단히 알아보겠습니다.

 

[ /etc/passwd ] 파일

사용자 계정 정보가 저장된 기본 파일입니다.

한 행에 사용자 한 명에 대한 정보가 기록되며, 콜론(:)으로 구분되는 일곱 개의 항목으로 구성됩니다.

형식 : [ 로그인 ID(사용자 계정명) : x : UID : GID : 설명(별명) : 홈 디렉터리 : 로그인 셸 ]

 

/etc/passwd 파일은 test:x:1000:1000:test:/home/test:/bin/bash처럼 구성되어있으며, 보기 쉽게 번호를 붙여 설명하겠습니다.

 

(1) test : (2) x : (3) 1000 : (4) 1000 : (5) test : (6) /home/test : (7) /bin/bash

 

(1) 사용자 계정명(로그인 ID) 입니다.

(2) passwordx로 표기한 것입니다. 실제 비밀번호는 /etc/shadowd에 별도로 존재합니다.

(3) UID (User ID), 사용자 ID 번호로 시스템이 사용자를 구별하기 위해 사용하는 번호입니다.

     (rootUID0입니다.)

(4) GID (Group ID), 그룹 ID 번호입니다.

(5) 별명(별칭)

(6) 홈 디렉터리 경로

(7) (shell) 종류 : 커널과 의사소통을 하기 위한 명령어 해석기

 

셸은 /etc/shells 파일에 저장됩니다.

 

셸의 종류 :

/bin/ksh (UNIX 기본셸, 현재 리눅스 CentOS를 사용 중이므로ksh/etc/shells에 없음)

/bin/bash (Linux 기본 응용셸)

/bin/csh (C언어 전용셸)

/bin/tcsh (C언어 확장셸)

/sbin/nologin (시스템셸 로그인X)

...

 

[ /etc/shadow ] 파일

사용자 암호에 관한 정보를 별도로 관리하는 파일입니다.

root 계정으로만 내용을 볼 수 있습니다.

root 계정이 아닌 경우 sudo 명령어를 통해 권한을 부여하여 사용할 수 있습니다.

형식 : [ 로그인 ID : 암호(패스워드) : 최종변경일 : MIN : MAX : WARNING : INACTIVE : EXPIRE : Flag ]

 

/etc/shadow 파일도 예시에 번호를 붙여 설명하겠습니다.

 

test:$6$f$..(중략)..5zuq.:19041:0:99999:7:::

 

(1) test : (2) $6$f$..(중략)..5zuq. : (3) 19041 : (4) 0 : (5) 99999 : (6) 7 : (7) : (8) :

 

(1) 사용자 계정명(로그인 아이디)입니다.) 입니다.

(2) 암호화된 비밀번호 (hash암호 : $1=md5 , $6=sha512), *일 경우 암호가 설정되지 않았음을 의미합니다.

(3) 19401() - 최종 변경일, 197011일을 기준으로 패스워드를 바꾼 지 며칠이 지났는지 표현합니다.

(4) 0() - 패스워드 변경 최소일입니다. (7이 쓰여 있으면 패스워드 변경 후 7일 이후 다시 변경 가능)

(5) 10() - 패스워드 변경 최대일입니다. 패스워드를 변경하지 않고 사용할 수 있는 일 수입니다.

(6) 7() - 패스워드가 만료되기 전 경고를 시작하는 날수입니다.

(7) 2() - 패스워드 변경 최대일이 지났을 때의 유예기간입니다.

(8) 계정 만료일자입니다.

 

[ /etc/login.defs ] 파일

사용자 계정의 설정과 관련된 기본 값을 정의하는 파일입니다.

 

[ /etc/group ] 파일

그룹에 대한 정보가 저장된 파일입니다.

/etc/passwd 파일의 GID 항목에 지정된 그룹이 기본 그룹이며, 사용자가 속한 2차 그룹은 /etc/group 파일에 지정됩니다.

형식 : [ 그룹 이름 : x : GID : 그룹 멤버 ]

 

[ /etc/gshadow ] 파일

그룹 암호가 저장되는 파일입니다.

root 계정으로만 내용을 볼 수 있습니다.

root 계정이 아닌 경우 sudo 명령어를 통해 권한을 부여하여 사용할 수 있습니다.

형식 : [ 그룹 이름 : 그룹 암호 : 관리자 : 그룹 멤버 ]

 

[ /etc/sudoers ] 파일

계정의 권한 관리를 위한 파일입니다.

root 계정으로만 내용을 볼 수 있습니다.

root 계정이 아닌 경우 sudo 명령어를 통해 권한을 부여하여 사용할 수 있습니다.

 

[ /etc/default/useradd ] 파일

useradd 명령어의 기본 값을 설정하는 파일입니다.

 

아래는 cat 명령어로 /etc/default/useradd 파일을 열었을 때, 각각에 대한 설명입니다.

# useradd defaults file --> 주석처리된 부연 설명. 실제로 처리되지 않는다.
GROUP=100 --> Users 그룹
HOME=/home --> 계정생성 시 사용자 홈 디렉토리가 만들어 지는 기본 디렉토리
INACTIVE=-1 --> 계정만료 후 사용불가능 기본날짜 (0=바로 사용불가 , -1=옵션 사용안함)
EXPIRE= --> 기본 계정만료 일자(null)
SHELL=/bin/bash --> 기본 shell
SKEL=/etc/skel --> 계정 생성시 구성되는 파일 또는 디렉토리의 기본 설정
CREATE_MAIL_SPOOL=yes --> 기본 메일 생성 여부

 

[ /etc/skel ] 디렉터리

사용자 계정의 홈 디렉터리에 공통으로 배포해야 할 파일/etc/skel 디렉터리에 파일을 만들어두면 사용자 계정 생성 시 자동으로 복사됩니다.