(리눅스 고급) 01. 사용자 관리 - 사용자 관련 파일 이론

prana·2023년 3월 1일
0

Linux

목록 보기
12/28

목차

  1. 사용자 관리 관련 파일
  • /etc/passwd
  • /etc/shadow
  • /etc/group
  1. 사용자 및 그룹 관리 명령어
  • 사용자 관리 명령어
  • 그룹 관리 명령어
  1. 패스워드 관련 파일 및 명령어
  • 패스워드 정책
  • 패스워드 관련 파일
  • 패스워드 관련 명령어
  1. 따라학 IT
  • 사용자 파일 확인해보기
  • 사용자 관리해보기
  • 패스워드 설정해보기

1. 사용자 관리 관련 파일 - /etc/passwd

  • 한 줄 한줄 사용자 정보라고 생각하면 된다.

    user : x : 1000: 1000 : user :/home/user:/bin/bash
    사용자 이름(id) : 사용x(shadow파일에 따로 저장하기 시작): UID(숫자값으로 구분하는 게 더 편함): GID : 주석 : 홈디렉토리

  • GID : 한 명의 사용자가 여러 그룹에 속할 수 있기 때문에, 주 그룹을 의미한다. (보조그룹은 다른 파일에 명시됨)
  • 주석: 설명을 길게 써도 괜찮음 지금은 간단히만 적혀있음
  • 사용자 홈 디렉토리 : cd ~ -> /home/user
  • 로그인 쉘: 로그인 할 때 실행되는 쉘의 종류를 지정
    • 시스템이 사용하는 계정인 경우 nologin

참고) nfs(Network File System) : 윈도우의 공유폴더 같은 개념

  • 다른 사람이 내 컴퓨터에 있는 파일 받기.. 로그인 과정을 따로 거치지 않음(원격에서 접속한 사용자가 부여받는 계정 (nfsnobody))

참고2) - ntp(Network Time Protocol): 컴 껐다 켜도 항상 최신 시간으로 되어 있는. 네트워크에 있는 시간을 받아오는.


사용자 관리 관련 파일 - /etc/passwd

🤔 사용자의 기본 정보를 저장하고 있는 /etc/passwd

종류설명
로그인명- 각 사용자는 유일한 이름을 가지고 있어야 함 (중복 허용x)

- 첫 문자는 영문자(. . - 시스템에 따라 사용가능)
사용 안함- (본 사용 목적: 패스워드를 저장하는 부분) 현재 사용 안함

- etc/shadow 파일에 따로 저장
UID- 로그인명은 중복이 안됨, 그러나 UID는 중복이 가능

- 시스템이 사용자를 식별하는 번호(root의 권한을 가질 수도 있음)

- 일반 사용자는 1000번 이상의 사용

-normally 1000보다 작은 UID는 예약 UID
GID- 해당 사용자가 속해있는 주 그룹의 GID
주석- 일반적으로 사용자의 전체 이름을 써준다. 또는 연락처, 부서 등 로그인명만으로 사용자의 구분이 힘들 때 자세한 설명을 쓰는 부분
사용자 홈 디렉토리- 사용자의 홈 디렉토리

- ~를 사용했을 때 참조하는 부분
로그인 쉘- 사용자가 로그인할 때 실행되는 쉘을 지정

종류설명
root시스템에서 모든 권한을 가지고 있는 최고 권한 사용자,

시스템 내의 보호되는 파일이나 퍼미션 등의 제한 사항에 대해 대부분 영향을 받지 않는다.

🌟root 사용자는 UID가 0번이다.
bin시스템의 구동중인 바이너리(실행) 파일을 관리하기 위한 계정
daemon백그라운드 프로세스에 대한 작업을 제어하기 위한 시스템 계정
adm시스템 로깅(로그)이나 특정 작업을 관리하는 시스템 계정
Ip프린트를 위한 계정
gdmGnome Display 관리 서비스 계정
root 제외 나머지는 시스템이 사용하는 계정이다.

사용자 관리 관련 파일 - /etc/shadow

🤫 사용자의 패스워드를 저장하고 있는 - /etc/shadow
패스워드의 정책을 설정하는 파일

  • 설정한 패스워드가 조회한 사람에게 그대로 보이면 안되기 때문에, 암호화를 해둠 (ex: user1, user2 둘의 패스워드가 같아도 다르게)
  • $로 세 군데로 구분해둠.
    • (1:어떤 알고리즘을 쓸 건지 / 2: 사용자들의 패스워드가 서로 다를 수 있게 양념을 해둠 / 3: 암호화된 뒷부분)

  • 패스워드 쉬운 걸로 하려니까 안됐을 때, 패스워드 정책과 관련된 부분
  • 17556: (날짜를 뜻하는 것 같음) (1970년을 기준으로 카운트 한 날짜)
  • 0 : 패스워드 변경 후 최소 사용기간 (한 번 바꾸면 하루 정도는 써야하는 등의 설정)
  • 99999: 평생 쓸 수 있을 정도의 맥시멈 (ex: 7이면 일주일쓰고 강제로 바꿔야 하는)


  • 7 : warning 패스워드 만료일 전부터 미리 경고를 해둬라 ⑧에 만기일을 지정하면, 날짜를 지정. 이 날짜가 지나면 계정이 잠금 상태가 되어버림. 일주일 전부터 알려달라. 경고를 해달라
  • ⑧ : expire 관리자가 따로 해제해야 풀림.
  • ⑦ : 얼마동안 로그인 안하면 잠금대상으로 바뀌는지. (잠금 전 기간)
  • ⑨ : 사용 안하는 필드

숫자명칭설명
로그인명- 사용자의 로그인명
패스워드 필드- 암호화돼서 저장

-대칭키 암호화 알고리즘(DES)을 이용한 Crypt 함수

- $로 필드를 구분(패스워드 생성 시 사용된 salt값을 저장)

- *LK*: 해당 사용자는 로그인 할 수 없는 lock이 걸린 사용자를 의미

- 공백 : 패스워드 입력 없이 로그인 할 수 있음

- Windows의 암호저장 파일 경로 : C:Windows/System32/config/SAM
마지막 변경일- 1970/1/1 기준으로 패스워드를 변경한 날짜까지 count
MIN- 패스워드 변경 후 최소 사용 기간(패스워드 변경 후 설정 MIN이 지날 때까지 재변경 불가)
MAX- 패스워드 변경 후 최대 사용 기간

- 지정된 MAX 값 이내에 변경 패스워드 사용가능
WARN- 패스워드 만기일 이전에 사용자에게 경고 메시지를 전달할 날짜 지정
Inactive- 비활성화 사용자

- 휴면 계정 설정(설정 날짜만큼 로그인 활동이 없으면 Lock 계정(휴면계정)으로 변경됨)
Expire- 패스워드 만기일 설정

- 해당 날짜에 자동으로 계정 locking

-> 로그인 불가(관리자에 의해 lock해제 필요)
Reserved예약 필드, 현재는 사용 안 함

🔐 패스워드 생성

  • Password -> H() (해시알고리즘) -> 암호문1 도출 -> crypt 기능 (Salt값 추가 + 암호문1) -> 최종적으로 암호문2
  • salt값: 운영체제에서 random하게 만들어내는 값, 패스워드를 변경할 때마다 바뀌게 됨
  • why? : 같은 암호를 사용하는 두 사용자의 암호값 혼란을 막기 위해

사용자 관리 관련 파일 - /etc/group

  • 그룹에 대한 정보를 저장하고 있는 /etc/group

  • 특정 그룹들 목록이 나열
  • 그룹에 속한 보조 그룹으로 속한 사용자들의 계정이 나열됨
  • 그룹도 패스워드 지정 가능 (그룹도 그룹만의 shadow가 있음)
  • 그룹에 보조 그룹으로 속한 사용자들의 명령.

  • user사용자 위에서 GID가 1000번이라고 하면, 주 그룹으로 참조(/etc/passwd 파일에 나오는 것)
  • root, adm, bin : user 그룹에 속해있긴 하지만, 주 그룹에 속해있지는 않는다.

0개의 댓글