7.26 정리-사용자 계정

HakJin Kim·2023년 7월 26일
0

사용자 관리

  • 소유권 / 허가권

cf) 식별(Authentication) + 인증(Identification) + 권한 부여(Authorization)

  1. 식별(Authentication)
    = 클라이언트가 Account와 Password를 가지고 서버에 검증을 요구하는 절차
  2. 인증(Identification)
    = 서버가 받은 Account와 Password를 검증한 뒤 클라이언트에게 인정하는 절차
  3. 권한 부여(Authorization)
    = 식별 요청과 함께 전달 받은 권한의 차등적 부여 관련 정보를 토대로 인증 절차 간 승인/거부
  4. 책임 추적성(Accounting)
    = 로그/기록을 남기는 것

사용자 관련 파일/디렉터리

1. /etc/passwd							-> 사용자의 계정 정보
[1. 계정명] : [2. 패스워드] : [3. 계정 식별자] : [4. 그룹 식별자] : 
~ [5. 코멘트/설명] : [6. 계정의 홈 디렉터리] : [7. 사용자 쉘 종류]
khj : x : 1001 : 1001 : (X) : /home/khj : /bin/bash

2. /etc/group							-> 사용자의 그룹 정보
[그룹명(기본)] : x : [그룹 식별자] : [소속원/계정명/디폴트 X]
khj:x:1001:

3. /etc/shadow							-> 사용자의 실제 패스워드 정보 (암호화 상태)
[1. 계정명] : [2. 암호화된 패스워드] : [3. 최초 패스워드 변경 후 지난 일 수] : [4. 최소 변경일] : [5. 최대 유효기간] : 
~ [6. 최대 유효기간] : [7. 만료 경고일] : [8. 비활성화 기간] : [9. 계정 만료일] : [10. 예약]
khj:$6$0NoCV1Bs$sA/fLZ.6nV.TVNdR6p5f4n/QSBSrN/C/jElx75A.sl8zr49W6h6QP6F0LRUqpZSnGPXHQH0SeXz0wBwslqZ.O0:19563:0:99999:7:::

4. /home/[계정의 홈 디렉터리]				-> 
5. /var/mail/[계정 사용자명(메일박스)]		-> 
#pwconv -> 패스워드 암호화 후 /etc/shadow 파일에 저장
#pwunconv -> /etc/shadow에 암호화 되어있는 패스워드를 /etc/passwd로 저장

왜 passwd 파일을 암호화해서 shadow 파일에 저장하나?

  • 식별과 인증 과정에서 passwd을 사용하는데 이때 passwd 파일의 권한을rwx--로 설정한다면 식별, 인증 과정에서 passwd 파일에 접근 자체를 못하므로 passwd 파일의 권한은 rw-r-r-로 두되 passwd에서 가장 중요한 id 내용은 shadow 파일로 따로 암호화하여 저장한다.

사용자 생성 및 변경, 삭제

<사용자 생성>
#useradd [옵션] [생성할 계정명]
#useradd khj

<사용자 비밀번호 변경>
#passwd [옵션] [계정명]
#passwd khj ---> [비밀번호 생성 과정]

<사용자 계정 삭제>
#userdel [옵션] [삭제할 계정명]
#userdel -r id1   [r옵션을 붙여야 mail과 home 디렉터리까지 삭제된다]
account : 계정(ID+Authorization[권한부여])
id 		: 식별자
  • /etc/passwd 파일의 내용

  • /etc/shadow 파일의 내용 (패스워드 설정 전)

  • /etc/shadow 파일의 내용 (패스워드 설정 후)

  • id1 계정 생성을 하면 3개의 파일과 2개의 디렉터리에 계정 관련 내용이 추가됨
    (userdel 명령어 사용 시 -r 옵션을 사용해야하는 이유
    => 디렉터리까지 삭제를 해야하기 때문에)

<사용자 생성 참조/정의 파일>
/etc/login.defs

<사용자  관련 파일>
/etc/skel/사용자의 환경 설정 파일

login.defs

  • 최대 변경일 99999
    최소 변경일 0
    비밀번호 최소 길이 5
    만료 전 경고일 수 7

  • 계정 생성시 시작하는 UID, GID의 최소값, 최대값(1000~60000)

사용자 정보 변경

#usermod [옵션] [설정값] [계정명]

[cat passwd 결과]
khj:x:1001:1001:[코멘트 삽입 장소]:/home/khj[홈디렉터리]:/bin/bash[사용 쉘]

<옵션.
-l : 계정명 변경
-u : UID 변경
-g : GID 변경
-c : 코멘트 추가
-d : 홈디렉터리 변경
-s : 쉘 변경
<코멘트 삽입>
#usermod -c kimhakjin khj

[결과]
khj:x:1001:1001:kimhakjin:/home/khj:/bin/bash
<홈디렉터리 변경>
#usermod -d /home/khj1 khj

[결과]
khj:x:1001:1001:kimhakjin:/home/khj1:/bin/bash
< 변경>
#usermod -s /bin/csh khj

[결과]
khj:x:1001:1001:kimhakjin:/home/khj:/bin/csh

패스워드 정보 변경

#chage [옵션] [설정값] [계정명]

[cat shadow 결과]
khj:~~~:19563:0:99999:7:::

<옵션>
-l : 패스워드 정보 확인
-m : 최소 변경일
-M : 최대 유효일
-W : 패스워드 변경 만료일/경고일
-I : 비활성화 기간
-E : 계정 만료일
<최소 변경일 설정>
chage -m 10 khj

[결과]
khj:~~~:19564:10:99999:7:::
<최대 유효일 설정>
chage -M 1000 khj

[결과]
khj:~~~:19564:10:1000:7:::
<패스워드 변경 만료일 설정>
chage -W 10000 khj

[결과]
khj:~~~:19564:10:1000:10000:::
<비활성화 기간 설정>
chage -I 10 khj

[결과]
khj:~~~:19564:10:1000:10000:10::
<계정 만료일 설정>
chage -E 2023/12/32 khj

[결과]
khj:~~~:19564:10:1000:10000:10:19723:
<패스워드 정보 확인>
chage -l khj

Shadow 기본설정 복구값

#chage -m 0 khj
#chage -M 99999 khj
#chage -W 7 khj
#chage -I -1 khj
#chage -E -1 khj

cf) 안전한 패스워드 사용

  1. 숫자 : 10자
  2. 알파벳 소문자 : 26자
  3. 알파벳 대문자 : 26자
  4. 특수문자 : 32자

ex)

  • 2 Factor : 10자 이상
  • 3 Factor : 8자 이상

Shadow 파일 분석

/etc/shadow
-> 패스워드 정보 (암호화 상태)
$6 -> HASH ID
$.4O9EZED -> Salt 값
$JYcrDjeUVdswUwFf0110jedhUPZQ3lZ6BHNF3O1COoM7oSj67fN/pgw7ig85lRUDwz6GhrYLdLc5UItncAOpU0
-> Salt + 1234 값 /// Hash Value

HASH ID

  • 하나의 글자만 바뀌어도 암호화 전체가 바뀜. (cf.눈사태 효과)
    1 : MD5
    2 : BlowFish
    3 :
    4 :
    5 : SHA-256
    6 : SHA-512

ex)

  • login.defs 파일 내용

  • khj = SHA-512 (~:$6~)
    khj2 = MD5 (~:$1~)
    khj3 = SHA-256 (~:$5~)
    = 암호화 알고리즘의 종류에 따라 암호화되는 문장의 길이가 차이난다.

암호 알고리즘 (대비-해)

1) 양방향 암호 알고리즘

  • 암호화에 사용하는 키 / 복호화에 사용하는 키가 같은지 다른지로 구분
  1. 대칭키 (비공개키)
    -> DES, AES, IDEA
    (SEED 키사에서 / ARIA 국정원 /
    HIGHT 저전력환경 / LEA 빅데이터, 클라우드, 모바일 환경)-> 국내산
  2. 비대칭키 (공개키)
    -> RSA, Rabin (소인수분해) / (이산대수) 디피 헬만, elgamal, ECC, DSA

2) 일방향 암호 알고리즘 (해시 함수)

  • 암호화 가능 / 복호화 불가능
  1. 비암호학적 해시함수
    -> CRC, Checksum, Parity
  2. 암호학적 해시함수
    -> MD5/128비트, SHA-1/160비트, SHA-2(SHA-224, 256, 384, 512)
profile
처음 시작하는 사람

0개의 댓글

관련 채용 정보