리눅스에서는 사용자 관리를 위해 필요한 파일들이 존재합니다.
아래 사진은 사용자 계정의 구조도입니다. 여러 파일이 상호작용하고 있음을 알 수 있습니다.
사용자 관리를 위한 파일들을 간단히 알아보겠습니다.
[ /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) password를 x로 표기한 것입니다. 실제 비밀번호는 /etc/shadowd에 별도로 존재합니다.
(3) UID (User ID), 사용자 ID 번호로 시스템이 사용자를 구별하기 위해 사용하는 번호입니다.
(root의 UID는 0입니다.)
(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(일) - 최종 변경일, 1970년 1월 1일을 기준으로 패스워드를 바꾼 지 며칠이 지났는지 표현합니다.
(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 디렉터리에 파일을 만들어두면 사용자 계정 생성 시 자동으로 복사됩니다.
'[Linux] 리눅스(CentOS7)' 카테고리의 다른 글
[Linux] 그룹 명령어 사용법 (0) | 2022.03.05 |
---|---|
[Linux] 리눅스 사용자 관리 명령어 및 사용법 (2) | 2022.03.02 |
[Linux] 리눅스 alias 사용법 및 예제 (0) | 2022.02.28 |
[Linux] 리눅스 vi 편집기 사용법 (2) | 2022.02.27 |
[Linux] 리눅스의 특수문자 종류와 사용법 (0) | 2022.02.26 |