딩굴댕굴

Linux - 15. 사용자 관리

by jennysgap

BOX

사용자 관리

- 사용자 계정 관련 정보 확인

- 사용자 계정 생성

- 사용자 계정 변경

- 사용자 계정 삭제


1) 사용자 계정 

Account : 사용자가 인증 등의 수단을 위해 사용하는 컴퓨터 상의 이름 정보

login ID  : 컴퓨터가 사용자 식별을 위해 사용하는 관리 번호



2) 사용자 관리를 위해 사용되는 파일들

- /etc/passwd

   root   :   x   :   0   :   0   :   root   :   /root   :   /bin/bash

    ---      ---     ---    ---      ----       -----       ---------

account   pass   uID     gID   name     home        shell

         command


- /etc/shadow

   root   :   $6$s/gs.....nIOBL0   :  16257  :      0      :    99999   :   7   :::

    ---        ----------------         -----        ---           -----       ---

 account         password            최종변경일  최소변경일 최대변경일 경고일   


- /etc/group

   root             :   x   :   0   :   root

   -----              --      --       ----

  group name    pass   gID     소속된 계정(2차)


패스워드 종류

1. $6$s/gs.....nIOBL0 : 정상적인 패스워드

2. * : 설정 불가 패스워드 

3. !! : locking password. 임시적으로 막아놓은 패스워드

4. 빈칸 : nonpasswd. 제일 안좋은 상태, 이렇게 만들어 놓으면 안됨


3) 사용자 계정 추가 명령

# useradd  [-options] [arguments]  new_account

# passwd  new_account

# useradd  -d  /home/newuser  -m  -s /bin/bash  -u 100  -g 200 -G 201 newuser

-d dir명 :  사용자의 홈디렉터를 표시 /etc/passwd 6번 필드에 기록되는 내용

-m         :  mkdir 명령을 실행하여 홈 디렉터리 생성

-s shell :  사용자가 이용할 명령 줄 프로그램 지정

-u uid     :  사용자를 인지할 수 있는 ID 설정

-g gid     :  사용자가 소속된 그룹에 대한 ID 설정

-G gid     :  사용자가 소속된 2차 그룹에 대한 설정 (/etc/group 등록)

# useradd  test1

# tail /etc/passwd

# tail /etc/shadow

# tail /etc/group

# ls -l /home

# ls -l /var/spool/mail


# useradd  -d /home/test2 -m test2

# passwd test2


# useradd  -u 200 -g 0 test3


# useradd  -G 0,1,2,3 -s /bin/csh test4

# more /etc/group


* 생성된 사용자 계정의 LOCK 해제

# passwd account_name

# passwd  -d  account_name  :  패스워드 자리의 글자 삭제(/etc/shadow)

==> 패스워드가 없는 상태가 되므로 계정명만으로 로그인 가능.

==> 보안적으로 매우 위험.


* 계정 패스워드 LOCK 및 해제 (사용중인 계정)

# passwd  -l  account_name  : 패스워드 잠금

# passwd  -u account_name  : 패스워드 잠금 해제 

**** 패스워드 잠금 및 해제는 root 사용자만 가능.


4) 계정 내용 변경

# usermod  [-options] [argument]  exist_user

-l  change_account  : 계정명 변경 (-d 옵션 사용 필수)

# usermod  -l  test2  user2

# usermod  -l  test3  -d /home/test3 -m user3 

# usermod  -G 0,1,2 test2

# more /etc/group

# usermod  -G 1,2  test2   (0그룹 탈퇴)

# more /etc/group      

# usermod  -G ''  test2  (2nd 그룹 탈퇴)



5) 계정 삭제

# userdel  [-option] exist_account

-r   :   홈디렉터리 삭제

* 계정 삭제 작업 시 사용자의 홈디렉터리가 삭제되기 전 반드시 데이터 확인

# userdel  test2

# cat /etc/passwd

# cat /etc/shadow

# cat /etc/group

# ls -l  /home

# userdel  -r  test3



6) 그룹 관리

# groupadd  [-options]  new_group : /etc/group 파일에 신규 그룹 등록

# groupmod [-options]  exist_group : /etc/group 내 그룹 정보 변경

# groupdel  exist_group                 : /etc/group 내 해당 그룹 삭제

* 그룹을 먼저 만들거 계정을 만들어라!      

# groupadd hrd

# groupadd eng1

# groupadd sales

# tail  -5  /etc/group


# groupmod  -n market  sales --> group 이름 변경

# tail  -5  /etc/group


# groupdel user1


# useradd -g hrd class1

# grep -n class1 /etc/passwd /etc/shadow /etc/group

# passwd class1

# 다른 그룹에도 계정 하나씩 적용하여 만들어 보기


7) 패스워드 보호

- 패스워드 변경 주기? 분기마다. 3개월 주기로

- 패스워드의 길이? 길수록 좋음. 10자리 특수문자 포함

* /etc/shadow 파일에 각 사용자 마다 설정을 만든다. (복잡)

* /etc/login.defs 

PASS_MAX_DAYS 90일 동안만 사용 가능

PASS_MIN_DAYS 변경 불가일 (패스워드 한달마다 바꾼다고 생각하면 며칠동안은 외울시간이 있어야 하니 이날 까지는 변경불허)

PASS_MIN_LEN 패스워드 길이는 5자 이상

PASS_WARN_AGE 패스워드 만료되기 직전 경고일수

ENCRYPT_METHOD SHA512           해쉬값 = %값% 현재 리눅스가 사용하고 있는 키값. 

SHA-2 (Secure Hash Algorithm 2).   설명참조 http://copynull.tistory.com/96

USERGROUPS_ENAB yes                  유저를 만들 때, 그룹을 설정하지 않으면 유저 이름과 같은 이름으로 그룹을 만들어 설정하겠다.


* 패스워드 변경 사항 점검에 사용되는 명령

# chage -l userID


시스템에서 지원해주는 명령어들을 사용해 주는 것 = CLI

root 라는 계정으로 login은 안된다.

 - ssh 라는 통신방식을 사용하면 받아 준다.

 - 왠만하면 root로 로그인은 하지 말라!


C  ============  Server (Terminal 지원)

   ----------------------> login Shell

root login X login : user1 --> /etc/passwd

        ssh   O password:        --> /etc/shadow

crypt key (qwer1234)  글자 깨지는 모양이 똑같으면 같은 패스워드구나 함 (hash password)


Shell 의 두가지 상황

- 사용자 관점 : 현재 작업을 하고 있는 명령줄 user$ 즉, shell = 명령줄

- 개발자 관점 : 사용자 명령줄을 띄우게 하기 위한 상황들을 말한다.

- 또 다른 이름은 'CLI' 라고 함 


*sh --> 이렇게 생긴 것은 거의 다 쉘이다.

위치 : /bin 에 있다.

다양한 쉘을 사용해 보고 자기한테 편한 걸로 쓰면 된다.

기본적인 명령은 비슷 







반응형

블로그의 정보

jennysgap

jennysgap

활동하기