※ 리눅스 사용자 관리

 

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

+ Recent posts