제큐리티
사용자 관리 본문
/etc/passwd : 사용자의 기본 정보 저장하고 있는 파일

| root | x | 0 | 0 | root | root | /bin/bash |
| 로그인명 | 사용X | UID | GID | 주석(설명) | 사용자 홈 디렉토리 |
로그인 쉘 |
옛날 리눅스버전에서는 2번 필드에 로그인 시 패스워드의 해시값을 직접 저장했음
(하나의 파일에 패스워드 같이 관리하다보니 보안상 문제로 /etc/shadow파일에 따로 저장)
UID : 사용자의 아이디
GID : 사용자를 그룹으로 묶을 수 있는데 이 그룹을 구분지을 수 있는 아이디
(한 명의 사용자가 여러 그룹에 속할 수 있기 때문에 주 그룹의 아이디 값)

/sbin/nologin : 로그인해서 사용하는 사용자가 아닌 시스템이 특정 작업을 수행할 때 시스템이 사용하는 계정
/etc/shadow : 사용자의 패스워드 저장하고 이 사용자의 패스워드 관련된 정책 설정 파일

| root | $6$K... | 정수값 | 0 | 99999 | 7 | |||
| 사용자 아이디 |
암호화된 패스워드 |
패스워드 변경한 날짜 표시 |
패스워드 변경 후 최소 사용 기간 |
패스워드 변경 후 최대 사용 기간 |
경고 | inactive (휴면계정) |
패스워드 만료일 |
2번 필드 : $로 나뉘어져 있음
- 2.1 : 어떤 암호화 알고리즘(해시)
- 2.2 : salt
- 2.3 : 암호화된 구문
<패스워드 생성>
입력한 패스워드 -> 해시 알고리즘 -> 암호문1 > crypt(salt값 추가 + 암호문1) > 암호문 2
crypt : 리눅스에 있는 암호화 함수
현재 3번 필드는 비밀번호를 바꾼적이 없기 때문에 값이 없음(1970.01.01 기준으로 바꾼 날짜를 count)
ex) 18353 -> 365로 나누면 대략 50년
4번 필드 : 사용자가 비밀번호 변경 했을 때 최소 사용 기간만큼의 시간이 지나야 다시 변경 가능
6번 필드 : 8번 필드(패스워드 만료일)의 지정된 기간 전부터 경고
7번 필드 : 특정 기간동안 로그인 안 하면 잠금 계정으로 바꿈
9번 필드 : 예약 필드(사용 안 함)
/etc/group : 그룹에 속한 사용자들의 계정이 나열됨

| root | x | 0 | |
| 그룹 이름 | 패스워드 | GID | 사용자 목록 |
2번 필드 : 그룹도 패스워드 지정 가능(그룹 만의 shadow파일 따로 존재)
3번 필드 : 이 그룹의 GID
4번 필드 : 이 그룹의 보조 그룹으로 속한 사용자들의 목록 나열
ex) user:x:100:root,adm,bin > root,adm,bin 사용자들은 user 그룹에 속해있지만 주 그룹이 아닌 보조그룹으로 속해 있음
사용자 계정 생성
useradd -[옵션] [사용자명]
| 옵션 | 정의 |
| -u | UID를 지정 |
| -g | 주 그룹의 GID 설정 |
| -G | 보조 그룹의 GID 설정 |
| -d | 홈 디렉토리 |
| -m | 홈 디렉토리 지정 시 홈 디렉토리가 존재하지 않을 경우 해당 디렉토리를 자동으로 생성하는 옵션 |
| -s | 로그인 쉘 설정 |
| -c | 주석(사용자에 대한 설명) |
| -f | 휴먼 계정 전환 날짜 지정 |
| -e | 만료일 지정 |




사용자 계정 정보 변경
usermod : 옵션은 위와 동일
사용자 계정 삭제
userdel -r : 해당 사용자가 사용하던 홈 디렉토리도 같이 삭제
그룹 관리 명령어
groupadd -g : 그룹의 GID 설정
groupadd -o : GID 중복 설정 가능하게 하는 옵션
groupmod -g : 그룹의 GID 설정
groupmod -o : GID 중복 설정 가능하게 하는 옵션
groupdel -r : 그룹을 제거할 때 사용하는 명령어
패스워드 정책
- 대/소문자, 숫자, 특수문자 혼용해 8글자 이상
- 동일 문자 연속 4회 이상 금지
- 패스워드 히스토리 관리해 2~3개 이상 동일 패스워드 사용 금지
- 패스워드 변경 주기 설정(유효기간 90일 이하로 설정)
- 사전에 나오는 쉬운 단어나 이름은 패스워드로 사용하지 못하도록 설정
- 기본 설정된 패스워드는 사용하지 못하도록 설정
- 초기 부여된 패스워드는 사용자 최초 접속시 변경하도록 설정

/etc/security/pwquality.conf : 패스워드 정책 설정 파일
/etc/login.defs : 패스워드 기본값 설정 파일
passwd [사용자명]: 패스워드 변경할 때 사용하는 명령어
| -n | 패스워드 변경 후 최소 사용 기간 |
| -x | 패스워드 변경 후 최대 사용 기간 |
| -w | 패스워드 만기일 이전에 사용자에게 경고 메시지 전달할 날짜 지정 |
| -f | 최초 로그인시에 강제로 패스워드 변경하도록 설정 |
| -d | shadow 파일의 패스워드 필드 값 제거 passwd 입력 없이 로그인 가능 |
| -l | 해당 사용자의 상태를 locking으로 변경 |
| -S | 해당 사용자의 현재 패스워드 설정 조회 |