user 계정관리 (useradd, userdel, groupadd, groupdel, usermod etc..)

by 조쉬 posted Nov 22, 2017
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

root의 권한을 가진 상태에서 User, 즉 사용자들의 계정을 관리할 수 있습니다.

 

유저를 생성, 삭제 시킬수도 있고 그룹생성, 삭제와 유저의 그룹이동 그리고 유저계정의 패스워드 삭제, 지정 등 다양한 기능이 있습니다.

 

 위        치

의        미 

 /etc/passwd

사용자 계정 정보의 저장소  (누구나 볼 수 있음)

 /etc/shadow

 암호화(password)된 사용자 정보 (관리자만 볼 수 있음)

 /etc/group

 그룹 목록들에 대한 정보

 /home

 사용자별 홈 디렉토리

 

자 그럼 cat명령어를 이용해서 /etc/passwd를 조회해 보겠습니다.

 

 

제가 생성한 사용자 계정 blue 를 예를들어 설명하겠습니다.



blue : x : 500 : 500 : : /home/blue : /bin/bash

 

 위        치

의        미 

 blue

사용자 계정명 

 x

패스워드 (패스워드 삭제 시 빈공간이 됩니다. x는 패스워드가 존재한다는 뜻입니다.)

 500

 UID (User ID, 500번부터 시작, UID가 0이면 root관리자를 나타냅니다.)

 500

 GID (Group ID, 500번부터 시작, GID가 0이면 root관리자를 나타냅니다.)

 /home/blue

홈 디렉토리 위치

 /bin/bash

사용자 시스템 로그인 시 shell의 위치 

 

이번에는 cat명령어를 이용해서 /etc/shadow를 조회해 보겠습니다.

 

 

blue : !! : 15327 : 0 : 99999 : 7 : : :

 

 위        치

의       미 

 blue

 사용자 계정명

 !!

패스워드(md5암호화된 패스워드가 존재합니다.)

패스워드 설정은 아래에 passwd명령어에 관한 설명에서 찾아보시면 됩니다.

 15327

 암호 생성 일자

 0

 암호 변경 가능 최소 시간

 99999

 초기 암호변경 없이 사용 유효기간

 7

 만료 지정시 만료 경고일수

 

이번에는 cat명령어를 이용해서 /etc/shadow를 조회해 보겠습니다.

 

 

blue : x : 500 :

 

 위치

의미 

 blue

 그룹명

 x

 그룹 패스워드

 500

 GID

 NULL

 그룹 구성원 사용자(User) 이름

 

자 이제 유저와 그룹을 생성, 삭제, 관리하는 방법을 알려드리겠습니다.

 

<1. useradd명령어로 사용자 계정 추가>

 

명령어 형식 : useradd [option] [계정명]

 

-p : 패스워드 지정

 

-u : 사용자 UID 변경

 

-g : 사용자 기본그룹 지정

 

-d : 사용자의 기본 홈 디렉토리 변경

 

useradd명령어는 보통 계정을 생성하는 경우에만 사용합니다.

패스워드를 다루는 명령어도 따로 있고 UID,GID를 변경하기 위한 명령어도 따로 존재합니다.(아래에 설명)

 

그럼 유저를 생성해 보겠습니다. 유저 이름은 red로 하겠습니다.

 

 

유저를 생성하게 되면 기본적으로 home 디렉토리에 정보가 저장됩니다.

 

생성전에는 사용자 blue만 존재했지만 useradd red입력으로 새로운 유저 red가 패스워드 없이 생성되었습니다.

 

<2. userdel명령어로 사용자 계정 삭제>

 

명령어 형식 : userdel [option] [계정명]

 

-f : 강제 삭제

 

-r : 계정 생성시 만들어진 모든 정보 삭제

 

-h : 도움말

 

계정 삭제를 위해 존재하는 명령어 입니다. 주로 -r과 -f를 합친 -rf를 많이 사용합니다.

그럼 계정 red를 삭제시켜 보겠습니다.

 

 

userdel -rf red를 입력하고 다시 확인해 보니 red계정이 사라졌습니다.

 

 <3. usermod명령어로 사용자 계정 수정>

 

명령어 형식 : usermod [option] [인자값] [계정명]

 

-p : 패스워드 지정 -> usermod -p [인자값에 원하는 패스워드를 입력합니다.] [계정명]

 

-u : 사용자 UID 변경 -> usermod -u [원하는 UID번호] [계정명]

 

-d : 사용자의 기본 홈 디렉토리 변경(왜 사용하는지 모르겠습니다;;;)



-g : 사용자 기본그룹 지정 -> usermod -g [목적지 그룹 계정명] [이동할 그룹 계정명]

 

 

blue유저는 GID(Group ID)가 500번이고 red유저는 501번이라고 되어있습니다.

여기서 red유저의 그룹을 blue유저의 그룹으로 이동해 보겠습니다.

 

 

usermod -g blue red 를 입력했습니다.

오오!! red유저의 그룹이 500번으로 옮겨졌네요.

 

이런식으로 그룹을 옮기게 되면 blue그룹이 최상위 그룹이 되며 red계정은 blue그룹안에 속하게 됩니다.

 

여기서 어떤분은 분명 /etc/group에서 확인을 해보실 건데요, 아마 안바뀌어져 있을 겁니다.

/etc/group에는 항상 초기값이 저장되어 있기 때문에 아무리 그룹이동을 해도 초기에 생성된 그룹의 번호가 보여집니다.^^

 

다시 원래로 이동하려면 usermod -g red red <- 이런식으로 입력하시면 초기값으로 돌아옵니다.^^

 

-l : 계정명 변경 -> usermod -l [바뀌어질 계정명] [바꿀 계정명] 

 

 

어라? 오류는 안떴는데 디렉토리에는 계정명이 바뀌지 않았네요??

 

 

cat /etc/passwd로 확인해 보니 바뀌어져 있네요 ㅋ 홈 디렉토리에는 계정명이 그대로 남아있습니다.

 

<4. passwd명령어를 통한 패스워드 수정>

 

명령어 형식 : passwd [option] [계정]

 

-d : 패스워드 NULL 지정(암호삭제)

 

-l : 패스워드 잠금

 

-u : 패스워드 잠금 해제

 

-S : 패스워드 상태 출력

 

passwd명령어 관련된 옵션은 -d에 관해서만 설명하겠습니다. 다른건 딱 봐도 뭐하는 애들인지 아시겠죠?

 

 

cat /etc/shadow로 확인을 해보니 위에서 설정한 blue계정의 패스워드가 blue1234로 설정되어 있습니다.

 

 

passwd -d blue를 입력하고 엔터를 치니 영어로 쏼라쏼라 나옵니다. ㅋㅋ

blue유저의 패스워드를 제거합니다. 성공! 뭐 이런 뜻입니다. /etc/shadow에서 다시 확인해 볼까요?

 

 

red계정은 지워버렸습니다. 자세히 보시면 패스워드란에 !!가 없고 패스워드 인자값도 없고 그냥 비어 있네요. 성공입니다!

 

<5. groupadd, groupdel을 이용한 그룹생성, 삭제>

 

명령어 형식 : groupadd [option] [그룹], groupdel [그룹] (그룹란에는 지우고싶은 그룹의 계정명을 입력합니다.)

 

-f : 그룹 강제 생성

 

-g : 그룹 생성 시 GID 지정

 

-f 옵션은 말 그대로 강제로 그룹을 생성시킵니다. 딱히 쓸 일은 없을 것 같습니다.

-g 옵션은 그룹을 생성할 때 GID를 임의로 지정해 줄때 사용합니다.

 

groupadd -g 1000 bluegroup <- 입력하면 1000의 GID를 가진 bluegroup이라는 그룹이 생성됩니다.

 

 

 

cat /etc/group로 살펴보니 bluegroup이 생성되어 있네요.

 

마지막으로 그룹을 삭제하고 싶을 때 groupdel [그룹] 형식으로 입력해 줍니다.

여기서 중요한 점은 어딘가에 속해있는 그룹은 지울 수 있지만 최상위에 위치한 그룹은 지울수가 없다는 점입니다.