본문 바로가기

리눅스

6. 사용자 및 그룹 관리 (1)

0. 목자

 1. 사용자 및 그룹 관리

  1.1. 관련된 파일 및 디렉토리

 2. 사용자 계정 생성

  2.1. 사용자 계정 생성 시 자동생성되는 디렉토리 및 파일

  2.2. 삭제 시 주의 사항

 3. /etc/passwd 파일분석

 4. useradd, usermod

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

 

1. 사용자 및 그룹 관리

1.1. 관련된 파일 및 디렉토리
  - /etc/passwd              : id, 패스워드, uid, gid, 코멘트, 홈디렉토리, shell

마지막 줄에 사용자들의 정보 표시

  - /etc/group                : id, 패스워드, gid, 사용자
  - /etc/shadow              : id, 패스워드, 마지막으로 패스워드 수정한 날짜, 패스워드 최소 사용기간 패스워드 최대                                         사용기간, 경고메세지 출력일 , 유예기간 , 계정만료일
  - /etc/default/useradd    : 기본그룹, 유예기간, 계정만료일, shell, spool 생성 여부 
  - /etc/login.defs           : 메일사서함위치, 패스워드 최소사용일, 최대사용일, 경고 메세지 출력일, 패스워드 최소길                                       이, uid시작 및 끝번호, gid 시작 및 끝번호, 패스워드 암호화 방식 sha512
  - /etc/skel                  : 사용자 계정 생성시 기본적으로 홈디렉토리에 복사하는 파일 및 디렉토리

 

2. 사용자 계정 생성 & 삭제 : useradd 사용자이름 & userdel 사용자 이름

2.1. 사용자 계정 생성 시 자동생성 되는 디렉토리 및 파일

  - /home/계정이름 디렉토리 생성됨. 사용자의 홈 디렉토리
  - /var/spool/mail/계정이름 파일생성. 메일 사서함 파일 = /var/mail/계정이름

다음과 같이 사용자들이 생성되면 동시에 해당되는 폴더들이 생성

2.2. 사용자 계정 삭제 시 -r 사용하지 않으면 위의 두 파일과 디렉토리가 그대로 남아있게 됨

  - -r 옵션을 사용하면 a 사용자와 관련된 파일과 디렉토리가 함께 삭제 된다.

  - -r을 사용하지 않으면 기존 사용자와 관련된 파일과 디렉토리가 지워지지 않음.

    또한 동일한 이름의 계정 생성 시 계정은 생성되지만 uid 충돌 문제 발생.

      ==> 재성성한 b의 uid와 gid가 다르다

기존 b의 uid와 gid

        ==> 따라서 새로 생성된 b는 기존 파일과 디렉토리를 삭제하지못한다.

 

        ==> rm 명령어를 이용하여 해당 파일과 디렉토리를 지우게 되면 오류 없이 사용자 b를 생성 제거 할 수 있다.

rm으로 디렉터리를 지운 후 재생성&제거

  - 사용자를 제거할 때는 다른 사용자가 앞 사용자의 gid를 사용할 수 있기 때문에 맨 뒤에 있는 사용자부터 제거.

           => 혹은 그룹을 제거하는 방법도 있다

               * gpasswd -d 사용자 그룹 : 사용자를 그룹에서 제거하는 명령어 

               * groupdel 그룹 : 그룹을 제거

사용자 e가 d 그룹에 해당되어있다.
gpasswd를 통해 사용자e를 제거하고 그룹 d를 제거

3. /etc/passwd 파일 분석
 - 예시) a:x:1000:1000: :/home/a:/bin/bash

3.2. 분석 (칼럼별로 분석, 칼럼은 콜론으로 구분됨)
  - a:                  : ID
  - x:                  : password
  - 1000:             : uid 사용자별로 고유하다. 기본적으로 1000번부터 생성됨. /etc/login.defs 관련
                           만일 순차적 2000번 uid를 사용하면 그 다음 계정은 2001로 생성됨
                           중간의 제외된 uid는 사용하지 않음.
  - 1000:             : gid 그룹별로 고유하다. 사용자 계정을 생성하면 동일한 그룹이 자동 생성됨
  -  :                   : 코멘트 설명
  - /home/a:         : 사용자의 홈 디렉토리 
  - /bin/bash        : login 주어지는 Shell

 

4. useradd, usermod : 옵션은 동시에 여러 개 설정 가능

 - id 사용자 : 사용자가 해당되는 uid 와 gid, 그룹을 출력.

 

4.1. useradd
  - -u : uid 설정. 기본적으로 1000번부터 할당, 마지막 uid값 이후로 생성

uid 2000을 가지는 사용자 b 생성

        > uid는 마지막으로 만든 uid 다음 숫자로 생성.

사용자 c가 2001번으로 생성

  - -g : gid 설정. 기본적으로 uid와 동일한 gid 자동생성. 단 -g 옵션은 해당 그룹이 존재해야함

문구가 뜨지만 생성됨, -g의 경우 uid를 따라가므로 바꿀 것이 아니라면 생략 가능

            > 사용자 e가 사용자 d가 가진 gid 3000에 해당됨을 볼 수 있다.

            >> /etc/group파일을 통해 3000 그룹에 e가 포함됨을 볼 수 있다.

 

  - -c : comment 설정

사용자 f가 test 의 코멘트를 가진다.

 

  - -d : 홈디렉토리 지정. 해당 홈디렉토리 존재해야함.

사용자 g가 새로 만든 /home_1를 홈디렉토리로 지정 


  - -s : login Shell 지정. 기본값 -> /bin/bash ,  다른종류의 Shell: /bin/sh
      > shell은 명령어 해석기, App 전달하는 명령을 받아서 Kernel에 전달
         shell 이 없으면 login 불가

-s 옵션을 통해 사용자 a의 쉘을 sh로 설정


      >>현재 shell 확인 : # echo $ SHELL
          모든 shell 확인 : # cat /etc/shells
          login shell 변경 : # chsh -s 로그인shell 사용자
                                # chsh -s /bin/bash root

현재 시스템의 쉘과 쉘의 종류를 확인
chsh 명령어를 이용하여 root 사용자의 쉘을 sh쉘로 변경. su 명령어로 재로그인하여 확인하면 변경됨


          login 불가능    : /bin/false 로그인 불가 메세지 출력 안함
                               /sbin/nologin 로그인 불가 메세지 출력

로그인 불가하게하는 사용자 h 생성
로그인 확인을 위하여 사용자 a와 h의 패스워드 설정
su 명령어로 로그인을 시도하였을 때 a는 성공, h는 로그인이 되지 않는 것을 볼 수 있다.

      - -G :  추가 그룹 설정

추가 그룹으로 root를 설정
사용자 c의 그룹으로 기존 b 그룹과 추가적으로 root가 포함
추가 그룹은 제거가 가능하지만 기존 그룹은 제거 불가능


    4.2. usermod : 옵션은 useradd와 동일

사용자 a의 uid를 u옵션을 통해 변경
aa 그룹을 추가하여 사용자 a의 그룹을 -d 옵션을 통해 변경
-s 옵션을 통해 a의 쉘을 bash 쉘로 변경


      - 단, 홈디렉토리 변경 시 내부 컨텐츠까지 이동을 위해서는 -m 옵션 추가

        옵션이 없다면 내부 파일은 이동하지 않는다.
      - ex) # usermod -d /home_1/a -m a

사용자 a의 홈디렉토리가 home_1로 변경되며 -m옵션으로 내부 컨텐츠까지 이동

 

5. 그룹관련 명령어

- groupadd -d gid번호 그룹이름 : gid를 가지는 그룹을 생성

- gpasswd -d 사용자 그룹이름 : 사용자를 그룹에서 제거
- groupdel 그룹이름 : 그룹 삭제

'리눅스' 카테고리의 다른 글

8. 디스크 관리(1)  (0) 2022.02.22
7. 사용자 및 그룹 관리 (2)  (0) 2022.02.21
5. 파일 및 디렉토리 권한  (0) 2022.02.19
4. Archive & 압축  (0) 2022.02.19
3. 리눅스 기본 명령어  (0) 2022.02.19