※ 리눅스 사용자 관리
1. 사용자 관리 기본 파일
FILE | 설명 |
/etc/passwd | 사용자의 기본 정보를 저장하는 FILE |
/etc/shadow | 사용자의 PW에 관련된 내용을 저장하는 FILE |
▶ /etc/passwd
# grep hsh /etc/passwd
hsh:x:500:500:hsh:/home/hsh:/bin/bash
내용 | 설명 |
hsh | 사용자 이름 |
x | - x : PW 암호화, /etc/shadow에 저장 - * : 로그인 불가능 - : 패스워드 없이 로그인 가능 |
500 | UID |
500 | GID |
hsh | 사용자 별명 |
/home/hsh | 홈 DIR |
/bin/bash | 사용자 SHELL |
▶ /etc/shadow
# grep hsh /etc/shadow
hsh:!!:18338:0:99999:7:::
내용 | 설명 |
hsh | 사용자 이름 |
!! | !! : PW 생성되지 않았음 * : 로그인이 불가능 |
18338 | 1970.01.01 부터 변경된 날짜까지 총 날짜 수 |
0 | 사용자 PW 변경 후 최소한 그 PW를 사용해야 되는 날짜 수 0 |
99999 | 사용자 PW 생성 또는 변경 후에 다시 변경 없이 최대로 사용가능한 날짜 수 99999 |
7 | PW 만료 며칠 전부터 경고 메세지를 보낼지 결정하는 날짜 수 7 |
:: | PW 만료된 이후 계정도 그 이후 얼마 후에 사용 불능으로 할지 결정하는 날짜 NULL |
:: | 1970.01.01 부터 며칠째 되는 날짜에 사용자의 계정이 만료될 것인지 결정 NULL |
: | 특수한 플래그로 미래에 사용하기 위한 목적으로 빈 공간 NULL |
$6$PwJc4eD8/pqQFK.C$pMdaV.RWud8GVv7Q/LxSebKE3Wwc/Ae4V1HKyIzySN
$6$
: 암호화하는 해시 함수의 종류
SHA-512 6
MD5 1
Blowfish 3
NT Bash 3
SHA-256 5
$PwJc4eD8/pqQFK.C$
: SALT = 서로 다른 사용자가 같은 PW 사용해도 SALT 때문에 다른 암호화된 부분이 생성됨
$pMdaV.RWud8GVv7Q/LxSebKE3Wwc/Ae4V1HKyIzySN
: 암호화된 (encrypted) PW
SHA-512 86문자
MD-5 22문자
SHA-256 43문자
* pwconv / pwunconv
: pwconv 명령어 적용시 /etc/passwd 과 /etc/shadow 이 분리되어 암호화된 비밀번호가 shadow 파일에 저장
: pwunconv 명령어 적용시 /etc/shadow 이 사라지고 /etc/passwd에 암호화된 비밀번호가 저장
2. 사용자 생성 환경 설정 DIR / FILE
DIR / FILE | 설명 |
/etc/skel/ | 사용자 생성 시 홈 DIR에 복사되는 FILE, DIR를 포함하는 DIR |
/etc/default/useradd | 사용자 생성에 사용되는 기본 내용을 정의한 FILE |
/etc/login.defs | 암호화된 사용자의 PW FILE을 구성하는 요소들이 포함된 FILE |
▶ /etc/skel
# ls -a /etc/skel/
. .. .bash_logout .bash_profile .bashrc
FILE | 설명 |
.bash_logout | 로그인 SHELL이 종료할 때마다 읽고 실행, 사용자 환경 설정 능력을 향상시킬 때 사용 |
.bash_profile | bash가 로그인할 때마다 이 FILE을 읽어들여 그 안의 명령 실행 |
.bashrc | 새로운 SHELL을 시작하는 경우 .bashrc FILE에서 명령 실행 |
: /etc/profile
- 계정에 상관없이 SHELL 환경설정 FILE
: /etc/bashrc
- 계정에 상관없이 SHELL 구동 FILE
▶ /etc/default/useradd
설정 | 설명 |
GROUP=100 | 그룹 아이디, 사용자 생성 시 사용자 이름과 동일한 그룹 생성되는 것을 피하고 싶은 경우 -n 사용 시 사용자는 기본적으로 이 그룹에 속하게 된다 |
HOME=/home | 사용자 생성 시 사용자의 홈 DIR 생성될 DIR 정의 |
INACTIVE=-1 | PW 만료 후 계정이 비활성화되는 날짜 의미 -1 = 옵션 사용 X / 0 = PW 만료되자마자 계정 비활성화 |
EXPIRE= | 계정 만료 날짜 YYYY-MM-DD |
SHELL=bin/bash | 사용자 생성 시 기본적으로 사용할 SHELL /etc/shells에 저장된 다른 SHELL 사용 가능 |
SKE=/etc/skel | 사용자 생성 시 사용할 skel DIR 정의 |
CREATE_MAIL_SPOOL=yes | 사용자 생성 시 사용자의 메일을 저장할 FILE 생성 여부 정의 |
# useradd -D
// /etc/default/useradd 파일 내용 확인
▶ /etc/login.defs
설정 | 설명 |
MAIL_DIR |
사용자의 메일이 저장되는 DIR 정의 /var/spool/mail |
PASS_MAX_DAYS | PW 변경하지 않고 사용할 수 있는 최대 날짜 수 99999 |
PASS_MIN_DAYS | PW 변경 후 그 PW를 사용해야 하는 최소 날짜 수 0 |
PASS_MIN_LEN | PW 최소 길이 5 |
PASS_WARN_AGE | PW 변경 전 경고 메세지를 보내는 날짜 수 7 |
UID_MIN | 사용자 생성 시 할당되는 최저 UID 1000 |
UID_MAX | 사용자 생성 시 가지게 되는 최대 UID 60000 |
SYS_UID_MIN | 시스템 사용자에게 사용되는 최소 UID 201 |
SYS_UID_MAX | 시스템 사용자에게 사용되는 최대 UID 999 |
CREATE_HOME | 사용자 생성 시 홈 DIR를 만들지 결정 yes |
GID_MIN | 그룹에 사용되는 최소 GID 1000 |
GID_MAX | 그룹에 사용되는 최대 GID 60000 |
UMASK | 사용자의 홈 DIR 생성 시 갖게 되는 DIR 권한 077 |
USERGROUPS_ENAB | 사용자 제거 시 그 사용자의 그룹에 다른 사용자가 없다면 그 그룹도 삭제 yes |
ENCRYPT_METHOD | PW 암호화하는 알고리즘 정의 SHA512 |
3. 사용자 관리 명령어
▶ 사용자 생성 (useradd / adduser)
# useradd [옵션] [사용자 계정]
# adduser [옵션] [사용자 계정]
옵션 | 설명 |
-u | UID |
-g | GID |
-G | 보조 그룹 GID |
-d | 홈 DIR 지정 |
-e | 계정 만료일 지정 # usermod -e YYYY/MM/DD [사용자 계정] # usermod -e "" [사용자 계정] |
-f | 계정 유효일자 지정 |
-s | 로그인 시 사용할 기본 SHELL 지정 |
-M | 홈 DIR 생성하지 않음 |
-c | 주석 |
-mk | skel 파일 변경 |
▶ 사용자 정보 수정 (usermod)
# usermod [옵션] [사용자 계정]
옵션 | 설명 |
-u | UID |
-g | GID |
-G | 보조 그룹 GID |
-d | 홈 DIR 지정 |
-e | 계정 만료일 지정 |
-f | 계정 유효일자 지정 |
-s | 로그인 시 사용할 기본 SHELL 지정 |
-c | 주석 |
-l | 계정 이름 변경 |
-md | 홈 DIR 변경 |
-L | 사용자 일시 잠금 |
-U | 사용자 잠금 해제 |
▶ 사용자 제거 (userdel)
# userdel [옵션] [사용자 계정]
옵션 | 설명 |
-r | 홈 DIR과 메일 FILE 까지 같이 삭제 |
-f | 로그인 상태에서 삭제 |
4. 사용자 정보 모니터링
FILE | 설명 |
/var/run/utmp | 각 사용자의 현재 로그인 정보 기록 who, w |
/var/log/wtmp | 사용자의 모든 로그인과 로그아웃을 기록하는 FILE last |
/var/log/btmp | 사용자의 로그인 실패를 기록하는 FILE lastb |
/var/log/lastlog | 모든 사용자의 가장 최근 로그인 정보를 기록하는 FILE lastlog |
/var/log/secure | 인증 및 권한 부여에 대한 정보를 저장, 특히 ssh 관련된 모든 정보를 기록 #vi /var/log/secure |
5. DIR / FILE 소유권자 변경 (chown)
▶ chown
# chown [user]:[group] [DIR | FILE]
# chown -R [user]:[group] [DIR | FILE]
// 하위 파일과 디렉토리까지 소유권자 변경
* 모든 사용자 접근 차단
1) /etc/nologin 파일 생성
2) 로그인 시도할 경우 출력될 내용 입력
3) root 아닌 다른 아이디로 로그인 시도
4) 로그인 막힌 것 확인
6. 패스워드 에이징
: 명령어 chage (패스워드 에이징) 사용해 /etc/shadow 의 사용자 정보 변경
: GUI → system-config-users 패키지 설치
▶ 사용자 정보 확인
# chage -l [USERNAME]
▶ 최소 (m) , 최대 (M) , 경고 날짜 (W) 변경
# chage -m 5 -M 60 -W 10 [USERNAME]
// 패스워드를 최소 5일 , 최대 60일까지 사용가능 , 만료 10일 전부터 경고 메세지를 받는다
▶ 계정 만료 기간 설정
# chage -I 10 -E 2020-12-31 [USERNAME]
// 패스워드 만료 후 10일동안 로그인 하지 않을 경우 강제로 계정 잠금상태로 변경
// 만료날짜 2020-12-31 로 설정
* 패스워드 파일 무결성 검사
# pwck
'LINUX' 카테고리의 다른 글
LINUX 서비스 운영 방식 - standalone / xinetd (0) | 2021.08.02 |
---|---|
[LINUX] 그룹 관리 (0) | 2020.10.23 |
[Linux] vi 편집기 명령어 (0) | 2020.07.04 |