Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

요리사에서 IT개발자로

리눅스 계정 및 그룹 관리 가이드: /etc/shadow, /etc/group, /etc/default/useradd 파일 분석 본문

AWS

리눅스 계정 및 그룹 관리 가이드: /etc/shadow, /etc/group, /etc/default/useradd 파일 분석

H.S-Backend 2024. 9. 27. 11:51
1. /etc/shadow 파일 분석: 계정 보안의 핵심

/etc/shadow 파일은 리눅스 시스템에서 사용자 계정의 패스워드 및 기타 중요한 정보가 저장된 파일입니다. 이 파일은 보안이 중요한 정보들을 포함하고 있으며, 일반 사용자에게는 접근 권한이 제한되어 있습니다.

예시

a:$6$hwky6:20023:3:30:5:5:20032:

필드 분석

  1. a: 사용자 ID (계정명).
  2. $6$hwky6: 암호화된 패스워드 (SHA-512 알고리즘 사용).
    • $6$: SHA-512 알고리즘을 사용하여 패스워드가 암호화되었습니다.
    • hwky6: Salt 값으로, 동일한 비밀번호라도 다른 해시 값이 생성되도록 합니다.
  3. 20023: 패스워드를 마지막으로 수정한 날짜 (1970년 1월 1일을 기준으로 한 일수).
  4. 3: 패스워드 최소 사용일 (chage -m 명령어로 설정 가능).
  5. 30: 패스워드 최대 사용일 (chage -M 명령어로 설정 가능).
  6. 5: 패스워드 만료 전에 경고 메시지를 출력하는 기간 (chage -W 명령어로 설정 가능).
  7. 5: 패스워드 만료 후 계정 비활성화까지의 유예 기간 (chage -I 명령어로 설정 가능).
  8. 20032: 계정 만료일 (chage -E 명령어로 설정 가능, yyyy/mm/dd 형식으로 표시).

추가 정보

  • 패스워드 필드의 특수 기호 (!, *):
    • !: 계정이 잠긴 상태로, 사용자가 로그인할 수 없습니다.
    • *: 패스워드가 설정되지 않았거나, 패스워드가 비활성화된 상태입니다.
  • 패스워드 만료일 계산: date -d "1970-01-01 +20032 days" 명령어로 특정 날짜를 계산할 수 있습니다.

2. /etc/group 파일 분석: 그룹 관리의 중심

/etc/group 파일은 리눅스 시스템에서 그룹 정보를 관리합니다. 그룹은 사용자의 파일 및 디렉토리에 대한 접근 권한을 설정하는 중요한 역할을 합니다.

예시

a:x:10000:b

필드 분석

  1. a: 그룹명.
  2. x: 그룹 패스워드 필드 (/etc/gshadow 파일에 실제 패스워드가 저장됨).
  3. 10000: 그룹 ID (GID).
  4. b: 그룹에 속한 사용자들.

추가 정보

  • /etc/gshadow 파일: 그룹 패스워드와 관련된 보안 정보가 저장된 파일로, /etc/group 파일의 보안을 강화한 버전입니다.
  • GID 범위:
    • 0~99: 시스템 예약 그룹.
    • 100~999: 시스템에서 사용하는 그룹.
    • 1000 이상: 일반 사용자 그룹.

그룹 관리 명령어

  • 그룹 생성: groupadd 그룹명
  • 그룹 삭제: groupdel 그룹명
  • 그룹 정보 수정: groupmod 옵션 그룹명
  • 사용자를 그룹에 추가: usermod -aG 그룹명 사용자명

3. /etc/default/useradd 파일 분석: 계정 생성의 기본 설정

/etc/default/useradd 파일은 새 사용자 계정을 생성할 때의 기본 설정을 정의합니다. 이 설정들은 새 계정이 생성될 때 자동으로 적용됩니다.

예시

GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes

필드 분석

  1. GROUP=100: 기본 그룹 ID. 사용자명과 동일한 그룹을 생성하지 않은 경우 이 그룹에 소속됩니다.
  2. HOME=/home: 홈 디렉토리의 기본 경로.
  3. INACTIVE=-1: 패스워드 만료 후 계정 비활성화 기간 (-1은 비활성화되지 않음을 의미).
  4. EXPIRE=: 계정 만료일 (yyyy/mm/dd 형식).
  5. SHELL=/bin/bash: 기본 셸.
  6. SKEL=/etc/skel: 새로 생성된 사용자의 홈 디렉토리에 복사되는 파일 및 디렉토리의 위치.
  7. CREATE_MAIL_SPOOL=yes: 사용자 계정 생성 시 메일 스풀 파일 생성 여부.

추가 설정 옵션

  • UMASK=022: 새로 생성되는 파일 및 디렉토리의 기본 권한 설정 (022는 파일을 644, 디렉토리를 755로 설정).
  • USERGROUPS_ENAB=yes: 사용자가 삭제될 때 해당 사용자가 소속된 그룹도 함께 삭제할지 여부를 설정합니다.
반응형