본문 바로가기
모의해킹 침해대응 과정/Liunx 관리

리눅스 사용자 그룹관리 / day 12

by 알거음슴 2021. 4. 14.

사용자 관리

 1. 사용자 정보 파일.

사용자(User, Account) : 사용자 계정은 다른 사용자와 명령얼 실행 할 수 있는 프로그램간에 보안경계를 제공하는데 사용된다.

 /etc/passwd : 사용자의 기본적인 암호가 저장된 파일

정보 출력 내용 (구분자는 : )

 [root@server1 ~]# cat /etc/passwd
 root:x:0:0:root:/root:/bin/bash

root : 사용자 번호

x : 사용자 암호 ( 보안상 /etc/shadow ) 파일에 옮겨 둠.

0 : 사용자 아이디 (UID)

0 : 그룹아이디 (GID) 사용자의 주 그룹 (Primary Group)

root : 설명정보 (Comment / 이름, 전화번호, 이메일등)

/root : Home 디렉토리

/bin/bash : 로그인 쉘

 

/etc/shadow : 사용자의 암호가 저장된 파일

정보 출력 내용 (구분자는 $ )

 [root@server1 ~]# cat /etc/shadow
 root:$6$aOe2IgPFVE31kN8p$LMOsjdkMu30ZtO0yJ......gduiv3b0TMnN1mur2F56/RA4Dwc.:16110:0:99999:7:::

root : 사용자 이름

$6$aOe2IgPFVE31kN8p$LMOsjdkMu30ZtO0yJ......gduiv3b0TMnN1mur2F56/RA4Dwc : 사용자 암호

 $6$= 1:MD5 / 5:SHA256 / 6:SHA512

 $aOe2IgPFVE31kN8p$ = salt key

 $LMOsjdkMu3.....Dwc = 암호화된 암호

:16110:0:99999:7::: : 사용자 암호 이용기간 관련 명령. (password age)

 

 

 2. 사용자 관리 CMD.

useradd : 사용자 추가 명령어  (passwd : 암호생성)

형식예시

useradd user01

useradd -u 1000 -g users -c "Test User" -d /users/user01 -s /bin/ksh user01

* 기본적으로 /etc/passwd 에 들어갈 내용을 지정하는것.

 

주요 옵션 (기본값)

 -u UID 자동으로 UID 선택(UID 1000 이상), 기존 사용자 UID 다음번째 UID 선택

 -g GID 자동으로 GID 선택(GID 1000 이상), 사용자 이름과 동일한 그룹 생성

 -c COMMENT 기본적으로 필수 지정은 아님.

 -d HOME_DIR /home/$USER 디렉토리 생성 ( /etc/skel 의 내용을 복사해서 추가함 )

 -s /bin/bash 기본적으로 /bin/bash 지정

* -M : 사용자의 홈폴더를 지정하지 않는 옵션. (주로 큰 용량이 필요 한 경우)

* -r (system account) : 시스템 관리 사용자 추가, 별도 암호지정을 크게 하지 않고 UID를 1000 미만으로 소유한다. 주로 Apache등의 사용자로 부여할때 사용한다자

 

[참고] 일반 사용자들을 찾는 형식 : # awk -F: '$3 >= 1000 && $3 <= 60000 {print $0}' /etc/passwd

 

[참고] /etc/skel

사용자가 추가될 때 사용자의 홈폴더는 /etc/skel 안의 자료를 복사하여 홈폴더를 제작한다.

즉 /etc/skel 내 bashrc 등 환경파일을 수정 해 두면 사용자들을 추가할 때 원하는 환경설정들을 일괄적으로 지정하며 생성할 수 있다.

 

[실습] 사용자를 만들고 /etc/passwd 의 내용을 분석해보자.

 

 

usermod : 사용자 수정 명령어

 형식

# usermod -u 2000 user01

# usermod -l user03 -d /home/user03 -m user01 

 * 기본적으로 옵션들은 useradd 옵션과 매우 유사하다.

-l : 유저 이름변경 / 이하 홈폴더 등도 변경해야함

-s : 기본 쉘 변경

 

[실습] 사용자의 정보를 수정해보자. 사용자 정보 파일.

 

 

userdel : 사용자 삭제 명령어

 형식

# userdel user01 : /etc/passwd, /etc/shadow, /etc/group 의 정보 삭제

# userdel -r user01 : /etc/passwd, /etc/shadow, /etc/group 및 /$HOME /var/spool/mail/$USER 등. 자원들도 삭제

 

[실습] 사용자를 삭제할때 -r 옵션의 유무의 따른 정보를 확인 및 비교해보자

(/etc/passwd /etc/shadow /etc/group /$HOME /var/spool/mail/$USER)

 

 

 

그룹 관리

그룹(group) : 사용자들의 묶음. 

 한명의 사용자는 하나이상의 그룹에 속해야한다

 사용자가 속한 그룹의 종류는 주 그룹(Primary Group) 과 부 그룹(Secondary Group)이 있다

 한명의 사용자는 한개의 주 그룹과 최대 31개의 부그룹에 속할 수 있다.

 1. 그룹 정보 파일.

/etc/group : 그룹정보가 담겨져 있는 파일

정보 해석

[root@server1 ~/bin]# cat /etc/group | grep fedora
fedora:x:1000:user01

fedora : 그룹 이름

x : 그룹 암호

1000 : 그룹 아이디 (GID)

user01 : Secondaty Group에 속한 사용자 목록

 

 

 2. 그룹 관리 CMD.

groupadd : 그룹을 생성한다.

형식

 # groupadd class1

 # groupadd -g 2000 class1 : GID를 지정하며 생성됨.

 

[참고] usermod CMD + group  (useradd 도 적용가능)

# usermod -G class1,class2 user01  (usermod -aG class1,class2 user01)

-g : primary group (기존 primary group 삭제 후 해당 그룹으로 지정)

-G : secondary group (기존 scondary group 삭제 후 해당 그룹으로 지정)

-a : 기존 그룹을 유지한체 추가 그룹 지정

 

groupmod : 그룹을 수정한다.

형식

 # groupmod -g 1001 class1 : 그룹 GID 변경

 # groupmod -n class3 class1 : 그룹 이름 변경 (class1 -> calss3)

 

groupdel : 그룹을 삭제한다.

형식

 # groupdel class1 : 그룹을 삭제한다

 

 

 

패스워드 에이징 (password aging)

 시스템 보안을 위해 사용자 페스워드 만기일을 설정 및 변경하는 명령어.

/etc/shadow 파일을 참조하여 작동함.

user01:$1$eG0hsAqw$Cfawvh5OsIye2rKYcRPH.0:Last Change:MIN:MAX:WARN:INATIVE:Expire Date:

user01:$1$eG0hsAqw$Cfawvh5OsIye2rKYcRPH.0:14650:30:90:7:30:15000:

 * 모든 날자의 기준은 1970년1월1일 이다.

정보 확인.

Last Change : 암호가 최근에 변경된 시간.

MIN : 암호를 변경할 수 없는 날자. / 반복적, 암호 변경시 기간이 다시 재지정됨.(기본값:30일)

MAX : 암호를 사용할 수 있는 날자. 기간이 지나면 로그인시 변경암호 입력을 요구함

 반복적, 암호 변경시 기간이 다시 재지정됨. (기본값:90일)

WARN : 경고메시지를 주는 기간. (기본값:MAX의값 -7)

INATIVE : MAX 기간이후 INATIVE 기간이 지나면 inative 상태로 변경되어 로그인이 불가하다.

Expire Date : 암호 사용 가능 최대 날자. / 절대적, 해당 기간 이후는 암호 사용불가.

 

1. passwd aging 관리 CMD

chage

형식

 chage [OPTIONS] [USERNAME]

server time.kriss.re.kr iburst

옵션

 -l : chage 정보 확인.

 -m : min 값 변경  /  -M : max 값 변경

 -E : expire date 값 변경  ( 값 삭제 : -E "" [USERNAME] )

 

[참고] 전역설정, 개인설정

 전역설정 : /etc/login.defs 파일 수정. * 단 기존 생성된 유저들이 아닌 새로 생성되는 유저들에게 적용

 개인설정 : chage

 

[실습] 암호의 주기값을 지정하고 확인해보자.