본문 바로가기
Base/Linux(CentOS)

5. 사용자계정과 그룹

by 귀멸 2022. 6. 19.

0. 사용자 계정
  # 사용자 계정에 관련된 파일
    1) /etc/passwd  : 사용자의 일반적인 정보가 들어있는 파일
       * 파일 내용 보는 방법
        itbank:x:1000:1000:itbank:/home/itbank:/bin/bash
      
        itbank           : 사용자명, 뒤의 정보들이 어느 사용자의 정보인지 표시
           x                : 암호, 보안상의 이유로 passwd 파일에는 암호를 표시하지 않는다
      1000(왼쪽)     : UID, 이 사용자의 고유 번호
      1000(오른쪽) : GID, 이 사용자가 소속된 주요 그룹의 고유 번호
        itbank           : 사용자 별칭(계정명 혹은 ID로 사용 X, 화면에 표시되는 이름)
     /home/itbank   : 사용자의 홈 디렉토리가 절대경로로 저장
                              로그인 할 때나 ~ 기호를 사용할 때 이 정보를 보고 사용자의 홈디렉토리로 찾아간다.
         /bin/bash     : 사용자 계정이 사용하는 shell

        ** UID, GID
           UID : User ID, 사용자에게 부여되는 고유 번호
           GID : Group ID, 그룹에게 부여되는 고유 번호

            0      : root
            1 ~ 999: system or service accounts
            1000   : 일반 사용자 & 그룹

       *** shell
          명령어 해독기, 운영체제에 명령을 전달해주는 역할
          현재 시스템에 설치된 shell은 /etc/shells 파일에서 확인 가능 4가지 존재
        
        passwd 파일에 저장된 정보 중 shell 위치에 /sbin/nologin이 있을 수 있다
         > 명령어 사용 shell X, 로그인을 하지 못하게 만드는 shell(system or service 계정에 부여)

     2) /etc/shadow  : 사용자의 고급 정보가 들어 있는 파일
       * 파일 내용 보는 방법
       itbank:$6$kgVNDIBZIetj39TW~~~~~~~~ml/g6SqrCIa.:19103:0:99999:7:::

       itbank           : 사용자명, 뒤의 정보들이 어느 사용자의 정보인지 표시
       $6$kgVN ~~: 암호, 사용자가 로그인 시 사용하는 비밀번호를 암호화하여 저장
       19103          : 암호생성일자(1970년 1월 1일 기준으로 며칠째에 생성된 암호인지 표시)
                             (운영체제 설치 시 저장된 암호는 생성 일자가 표시 X)
       0                  : 암호최소 사용일자
       99999          : 암호 최대 사용일자
       7                  : 암호 만료전 경고 일자
       

       ** 사용자의 암호를 설정하는 명령어
        passwd             : 명령어를 입력한 사용자의 암호 변경
        passwd 계정명 : 해당 사용자의 암호바꾸는 명령어 (관리자 전용)

     3) /etc/login.defs : 사용자 & 그룹 계정의 생성 및 삭제와 관련된 몇몇 정보들이 들어있는 파일

 

1. 사용자 계정에 관련된 명령어들과 옵션
  #  사용자 생성
  - 형식
          useradd [옵션] [값] ... [옵션] [값] 사용자명

    * 옵션
       -u           : UID 지정
       -g           : 사용자의 주요 그룹 지정
       -c           : 별칭 지정
       -s           : shell 지정, 절대 경로로 입력
       -d           : home 디렉토리 지정, 경로와 이름 전체를 절대경로로 입력
                      (홈 디렉토리가 만들어질 경로는 미리 생성)
                      > 사용자 생성 시 홈 디렉토리에 /etc/skel에 있는 숨김파일 3개, 
                        디렉토리가 홈 디렉터리 생성 때 같이 들어가게 됨
            /etc/skel : 사용자 홈 디렉토리의 뼈대가 되는 디렉토리
           사용자 생성 시 홈 디렉토리 내부에 /etc/skel 안에 있는 파일/디렉토리들을 복사한다.
                      /etc/login/defs 파일에 CREATE_HOME 설정이 없더나 no로 지정되어 있으면 -m 옵션과 함께 사용
       -m          : make directory
       -k           : 기본 디렉토리인 /etc/skel이 아닌 다른 디렉토리를 skel로 지정, 반드시 -m 옵션과 함께 사용
       
       -D  [옵션]   : 사용자 생성 시 적용되는 기본 정보 확인   
                           추가 옵션을 함께 사용하여 기본 정보 변경
                 -b    : 기본 홈디렉토리 생성위치 변경

 

       /etc/default/useradd
                    : 사용자 생성 시 적용되는 기본 정보가 저장된 파일
                      이 파일의 내용을 변경하면 useradd의 옵션을 사용하지 않아도 같은 효과 확인 가능

       cp -r 과 /.*은 같이 쓰지 말자

   # 사용자 계정 정보 수정
      - 형식
         usermod 옵션 값 [옵션] [값] ... [옵션] [값] 사용자명

      * 옵션은 useradd의 옵션을 대다수 사용 가능
        -k 옵션의 경우 이미 홈 디렉토리가 만들어졌기 때문에 추가적인 skel 복사가 불가능하여 사용 X
        -D 옵션의 경우 이미 사용자가 만들어졌기 때문에 생성 시 적용되는 기본 정보는 필요 X
        -m 옵션은 move directory로 사용

 

  # 사용자 계정 삭제
    - 형식
        userdel [옵션] 사용자명
   

    * 옵션
        - r      : 사용자 소유의 파일 / 디렉토리 함께 삭제

 

2. 그룹
  - 사용자 계정을 그룹에 소속시켜서 사용
    >  그룹에 권한을 부여하여 그룹에 소속된 모든 사용자가 동일한 권한을 적용 받음

  - 그룹에 관련된 파일
    : /etc/group  : 그룹의 일반 정보가 들어 있는 파일

   * 파일 내용 보는 방법
     itbank:x:1000:itbank
     itbank   : 그룹 이름
     x        : 암호
     1000     : GID 고유번호
    <마지막필드> : 그 그룹에 일반 소속된 사용자들의 목록 출력

# 그룹 생성
   - 형식
      groupadd [옵션] [값] ... [옵션] [값] 그룹명

# 그룹 정보 수정
     - 형식
      groupmod [옵션] [값] ... [옵션] [값] 그룹명

   * 옵션
     -g       : GID 지정
     -n       : 그룹 이름 지정

# 그룹 삭제
    - 형식
      groupdel 그룹명
   * 사용자가 주요그룹(GID)로 사용 중인 그룹은 삭제 X

# 사용자 + 그룹
 - 사용자가 그룹에 소속되는 방식을 두 가지로 분류
  1) 사용자가 그룹을 자신의 주요 그룹으로 사용 (GID사용)
  2) 사용자가 그룹에 일반 소속되어 사용

 - 사용자를 만들면 같은 이름의 그룹이 생성 
   > 사용자는 기본적으로 함께 만들어진 그룹을 주요그룹(GID)으로 사용

 - 사용자의 주요 그룹과 사용자가 일반 소속된 그룹은 언제든지 변경
   1) 주요 그룸 (GID) 변경
       usermod -g
 
   2) 그룹에 일반 소속된 사용자 목록 변경
     usermod 명령의 -G옵션을 사용(가급적 사용 x)
     gpasswd 명령어 사용

gpasswd
 - 그룹에 일반 소속된 사용자 목록 변경
 - 형식
      gpasswd 옵션 값 그룹명

  * 옵션
     -a    : 값에 사용자명을 입력하여 그룹에 사용자를 일반 소속
     -d    : 값에 사용자명을 입력하여 그룹에 일반 소속된 사용자 목록에서 특정 사용자 제거

** id 
  - 사용자의 UID, GID, 일반 소속된 그룹의 목록 출력
  - 형식
    id 사용자명

댓글