본문 바로가기
서버/Linux

[Linux] 사용자 계정 관리 (2)

by 느링 2017. 10. 11.

사용자 계정 관리 ( 2 )

 

# useradd [옵션] [계정명]

사용자 계정 추가

→ 옵션

-c (Comment) 설명

-u UID

-g (주 그룹) GID  

-G (보조 그룹) Group

-s Shell

+-----------------------------------------------------------------------------------------------+

<예제 1>

# useradd Maroon5-1 → 사용자 계정 추가

계정명 : Maroon5-1

암호 : 보이는 것은 x 이지만 /etc/shadow에 저장되어있습니다.

 

# cat /etc/login.defs

UID : 500 

GID : 500

 

설명 : 없음

 

홈디렉토리 : /home/Maroon_5

# cat /etc/login.defs

# cat /etc/default/useradd

 

로그인 쉘 : bash 

# cat /etc/default/useradd

 

# cat /etc/login.defs, # cat /etc/default/useradd를 통해 설정된 내용을 볼 수 있습니다.

 

<예제 2> skel

/etc/skel 디렉터리에 파일 생성

사용자 계정 생성 시 홈디렉터리에 기본적으로 생성되는 파일들

기본으로 .bash_logout, .bash_profile, .bashrc가 숨김파일로 들어있습니다.

skel 모든 파일이 자동으로 복사가 됩니다.

+-----------------------------------------------------------------------------------------------+

# useradd -D

사용자 추가 시 적용되는 기본값을 변경

 # cat /etc/default/useradd 파일의 내용과 동일한 결과가 출력

+-----------------------------------------------------------------------------------------------+

※ 기본 값 변경하기

1. vi /etc/default/useradd → vi를 이용하여 기본값 변경

2. useradd -D                → 명령어를 이용하여 기본값 변경

<예제 1>

기본 홈디렉토리 경로 변경

 

테스트 디렉토리를 먼저 생성해준 뒤,

-b (base) 기본 홈디렉토리 경로 변경을 해줍니다.

# useradd -D 으로 경로 변경을 확인해 줍니다.

HOME=/home -> HOME=/sub_home

 

 

<예제 2>

vi를 이용하여 기본 홈 디렉토리 경로 되돌리기

#vi /etc/default/useradd 이용하기

 

HOME=/sub_home   ---> HOME=/home 로 수정

+-----------------------------------------------------------------------------------------------+

# usermod [옵션] [계정명]

사용자 계정 정보 수정

 → 옵션

-c 코멘트

-u UID

-g GID

-G GROUP

-s Shell

-l 사용자 계정명 변경

+-----------------------------------------------------------------------------------------------+

<예제 1>

Maroon_5 계정 수정하기

UID - 700 GID - 502 (이어야하는데 왜나는 502..)?

설명 - sugar

쉘 - /bin/sh

* "sugar"를 입력할 때 ""를 사용해야 하나의 인자로 받아들인다.

+-----------------------------------------------------------------------------------------------+

#userdel [계정명] & userdel -r [계정명]

계정 삭제

userdel -r은 /home 안에 있는 디렉터리까지 다 삭제됩니다.

 

#passwd

패스워드 설정

1) # passwd → 현재 로그인한 사용자의 패스워드 변경

2) # passwd [계정명] → 특정 계정의 패스워드를 변경할 때 사용 (root only)

→ 옵션

-l (lock) 패스워드 잠금

-u (unloch) 패스워드 잠금 해제

-d (delete) 패스워드 제거

 

※ 패스워드 정책

# cat /etc/login.defs 에서 확인할 수 있습니다.

- 비밀번호 최소 5글자

- 알파벳, 숫자, 특수문자가 각 한 개씩 포함되어야 한다.

- 사용자 ID가 포함될 수 없다.

- 등등

+-----------------------------------------------------------------------------------------------+

<예제 1>

# useradd AdamLevine → 테스트  용 계정 추가

# passwd AdamLevine → 암호 → 123

 

 

※ root계정은 패스워드 정책에 맞지 않더라도 비밀번호를 설정할 수 있습니다.

 

<예제 2> 

AdamLevine-2 계정 추가 및 암호123으로 설정

 

<예제 3>

AdamLevine 계정으로 스위칭 후 AdamLevine-2 계정으로 스위칭

 

# su - AdamLevine  -> AdamLevine 계정으로 스위칭

※ root계정은 스위칭 시 해당 계정의 패스워드 입력 과정이 없습니다.

But 일반 사용자 계정은 암호를 입력해야 로그인이 가능합니다.

 

<예제 4> passwd -d를 이용하여 AdamLevine-2 계정의 패스워드 삭제 한 후

su를 이용하여 AdamLevine 계정으로 스위칭 후 AdamLevine-2 계정으로 스위칭

 

비밀번호를 입력하지 않고 바로 AdamLevine-2계정으로 넘어갈 수 있습니다.

 

<예제 5>

AdamLevine을 잠금 설정하고 AdamLevine-2 계정에서 AdamLevine 계정으로 스위칭하기

AdamLevine-2 계정에서 AdamLevine으로 스위칭 시 패스워드를 입력해도 로그인 불가

+-----------------------------------------------------------------------------------------------+

su (Substitute User)

사용자 전환

su [계정명] 해당 계정으로 전환하나 환경 변수는 바꾸지 않음

su - [계정명] 해당 계정으로 전환하며 환경 변수 함께 변경

 

<예제 1>

su AdamLevine

홈 디렉터리가 root인 것을 확인할 수 있습니다.

프롬프트 변경한 것이 유지됩니다.

 

<예제 2> 

su - AdamLevine

홈 디렉터리가 /home/AdamLevine로 되어있습니다.

프롬프트가 기본값으로 바뀌었습니다.

+-----------------------------------------------------------------------------------------------+

그룹 관련 명령어

 

# groupadd [그룹명]

그룹추가

<예제 1> Maroon5그룹 추가 후 확인

※ Maroon5 그룹은 패스워드가 /etc/gshadow 파일에 저장되어 있고 GID는 503이며 해당 그룹에 속한 멤버는 없습니다.

 

# groupmod -g [그룹명]

그룹 정보 수정

-g 그룹의 GID를 변경

<예제 1> Maroon5 그룹의 GID를 600으로 변경

 

# groupdel [그룹명]

그룹 삭제

<예제 1> Maroon5 그룹 삭제

+-----------------------------------------------------------------------------------------------+

<문제 1>

BLACKPINK 그룹에 계정을 생성하여 JISOO, JENNY, ROSE, RISA 계정들의 그룹들을

BLACKPINK에 소속되어있도록 설정하세요.

 

But 그룹의 GID와 사용자 계정의 GID가 다르다면 그 그룹은 사용자 계정의

기본 그룹/주 그룹이 아닙니다.!!

BLACKPINK GID는 502이지만 JISOO GID는 500입니다.

즉, JISOO의 기본 그룹은 BLACKPINK가 아닙니다.

+-----------------------------------------------------------------------------------------------+

# groups [계정명]

해당 계정을 대표하는 GID(주 그룹)와 소속되어있는 그룹(보조 그룹)을 보여줍니다.

→ 결과

[계정명] : [GID(주 그룹)][보조 그룹1][보조 그룹2][보조 그룹3] . . .

<예제 1>

 

 정리   

/etc/passwd : 사용자 기본 정보 파일 (계정명, UID, GID, 홈 디렉터리, 로그인 쉘 등)

 

/etc/shadow : 사용자 패스워드가 암호화되어 담기는 파일

 

/etc/group : 그룹 기본 정보 파일

 

/etc/gshadow : 그룹의 패스워드가 암호화 되어 저장되는 파일 (실제로 많이 사용하지는 않음)

 

/etc/default/useradd : 사용자 계정 생성 시 기본 정보를 가지고 있는 파일

 

/etc/login.defs

: 시스템 사용자의 전체를 제한하기 위해 사용하는 설정 파일

  패스워드 정책 설정 확인 및 vi로 변경을 할 수 있는 파일

 

/etc/skel : 사용자 계정 생성 시 홈 디렉터리에 기본적으로 생성되는 파일들

 

+-----------------------------------------------------------------------------------------------+

사용자 및 그룹 파일에 무결성 검사

 

1. 사용자 계정 관련 파일

# pwck (PassWord ChecK)

 /etc/passwd, /etc/shadow 파일을 검사합니다.

- 필드의 설정 검사

- UID와 GID 설정 검사

- 기본 그룹의 존재 유무 검사

- 홈 디렉터리 존재 유무 검사

- 로그인 쉘 존재 유무 검사

- 패스워드가 없는 계정의 존재 유무 검사

<예제 1>

 

2. 그룹 계정 관련 파일

# grpck (GRoup Password ChecK)

 /etc/group, /etc/gshadow 파일을 검사합니다.

- 필드의 설정 검사

- GID와 이름의 설정 검사

- 사용자와 관리자의 설정 검사

 

+-----------------------------------------------------------------------------------------------+

 

Shadow System

passwd 파일은 일반 사용자도 읽을 수 있는 파일이므로 보안상 문제가 생길 수이으므로

shadow파일에 암호를 저장하기 위한 방법입니다.

 

Shadow System 기능 [비활성화 / 활성화]

 

#pwunconv

Shadow System 기능을 비활성화

<예제 1>

패스워드가 passwd 파일에 노출됩니다.

shadow기능이 비활성화 되어있는 상태에서는 암호를 업데이트(변경)할 수없습니다.

 

#pwnconv

Shadow System 기능을 활성화

<예제 1>

shadow기능을 사용하여 x로 패스워드를 숨깁니다.