본문 바로가기

Linux

사용자 계정&그룹

[사용자 계정에 관련된 파일]
   /etc/passwd

    -사용자의 일반 정보가 저장된 파일


      * 파일 내용 보는 방법
          user_a:x:1000:1000:test_user:/home/user_a:/bin/bash

          user_a             : 사용자명, 뒤의 정보들이 어느 사용자의 정보인지 표시
           x                     : 암호, passwd 파일에는 보안상의 이유로 암호 표시 X
          1000(왼쪽)      : UID, 이 사용자의 고유 번호
          1000(오른쪽)   : GID, 이 사용자가 소속된 주요 그룹의 고유 번호
          test_user         : 사용자 별칭(계정명 혹은 ID로 사용 X, 화면에 표시되는 이름)
          /home/user_a : 사용자의 홈 디렉토리를 절대경로로 저장(사용자가 로그인 할 때 등의 상황에서 사용)
          /bin/bash         : 사용자 계정이 사용하는 shell 

      * UID, GID
          운영체제가 사용자&그룹을 인식하는 번호
          
           UID   : User ID, 사용자에게 부여되는 고유 번호
           GID   : Group ID, 그룹에게 부여되는 고유 번호

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

      * shell
            - 명령어 해독기, 운영체제에 명령을 전달해주는 역할
            - 현재 시스템에 설치된 shell 목록은 /etc/shells 파일에서 확인 가능

             1) /sbin/nologin

                   ->  로그인을 하지 못하게 만드는 shell, 로그인을 못하는 이유가 출력됨

             2) /bin/false
                   ->  로그인을 하지 못하게 만드는 shell, 로그인을 못하는 이유가 출력되지 않음 

 

 

 


[사용자 계정 생성]

    - 형식
       useradd [옵션] [값] ... [옵션] [값] 사용자명

 

       useradd user_a
       user_a:x:1000:1000:test_user:/home/user_a:/bin/bash
                  * 생성된 사용자 계정의 UID GID는 생성했던 것 중 가장 큰 숫자 +1, 별칭은 없음

   * 옵션
     -u : UID 지정
     -g : GID 지정

     -G: 추가 그룹 지정
     -c : 별칭 지정
     -s : shell 지정
     -d : 홈 디렉토리 경로와 이름을 지정
           (절대경로로 입력해야하고 경로와 이름을 전부 입력해야함)
           /etc/login.defs 파일에 CREATE_HOME 설정이 없거나 no이면 -m 옵션과 함께 사용
     -m : make directory
     -k : 기본 skel 디렉토리 /etc/skel이 아닌 다른 디렉토리를 skel로 지정,
           반드시 -m 옵션과 함께 사용

     -N : 사용자 생성시 그룹을 생성하지 않겠다는 옵션, 기본 그룹으로 할당됨

 

[사용자 암호 변경]

   -형식
      passwd                : 명령어를 입력한 사용자 자신의 암호 변경(모든 사용자 사용)
     passwd 사용자명 : 해당 사용자의 암호 변경(관리자만 사용)

 


[사용자 계정 정보 수정]

   -형식
      usermod 옵션 값 [옵션] [값] ... [옵션] [값] 사용자명

     * 옵션은 useradd의 옵션을 대다수 사용 가능
          ->  -k 옵션은 사용 불가
          ->  -m 옵션은 move directory로 의미 변경

               -d 옵션으로 홈디렉토리를 변경할 때 -m 옵션까지 사용해야 안의 내용물까지 옮겨짐


[사용자 계정 삭제]

  -형식
      userdel [옵션] 사용자명

   * 옵션
      -r : 삭제하는 사용자 계정 소유의 파일/디렉토리도 같이 삭제

 

 

주의사항)
      사용자 계정과 홈디렉토리는 별개임을 명심


      usermod -d 를 사용해서 사용자 계정의 홈디렉터리를 변경했더라도 실제 홈디렉터리는 이동하지 않음
      그렇기 때문에 usermod -m (move directory) 옵션과 같이 사용해서 한번에 경로 변경과 실제 홈디렉터리를 이동

 

      마찬가지로 userdel을 사용해서 사용자 계정을 삭제했더라도 실제 홈디렉터리는 삭제되지 않기 때문에

      -r 옵션으로 한번에 해당 사용자 계정 소유의 파일과 디렉토리를 삭제

 



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

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

 * 파일 내용 보는 방법
   user_a:x:1000:


   user_a         : 그룹 이름, 뒤에 오는 정보가 어느 그룹의 정보인지 출력
   x                  : 암호, 그룹에는 별도의 암호를 지정하지 않는다
   1000            : GID, 해당 그룹의 고유 번호
   마지막 필드 : 그 그룹에 일반 소속된 사용자들의 목록 출력
                         단, 운영체제 설치 시에 생성된 그룹은 해당 그룹을 GID로 사용하는 사용자 목록도 포함

 


[그룹 생성]

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

* 옵션
   -g : GID 지정
       -> GID도 UID와 마찬가지로 따로 지정해주지 않으면 가장 큰숫자 +1로 생성

 


[그룹 정보 수정]

  -형식
     groupmod [옵션] [값] ... [옵션] [값] 그룹명

 * 옵션
        -g : GID 변경
        -n : 그룹명 변경

 


[그룹 삭제]

  -형식
     groupdel 그룹명     
          * 사용자가 해당 그룹을 주요 그룹(GID)으로 사용 중이라면 삭제 불가

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

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

 - 사용자의 주요 그룹과 사용자가 일반 소속된 그룹은 언제든지 변경 가능
  1. 주요 그룹(GID) 변경
     -> usermod 명령의 -g 옵션을 사용

  2. 그룹에 일반 소속된 사용자 목록 변경
     1) usermod 명령의 -G 옵션을 사용(가급적 사용 X, 추가가 아니라 덮어쓰기로 적용)
     2) gpasswd 명령어 사용

gpasswd
 - 그룹의 일반 소속된 사용자 목록 변경


 - 형식
     gpasswd 옵션 값 그룹명

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

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

 - 형식
     id 사용자명

'Linux' 카테고리의 다른 글

ACL(access control list)  (0) 2022.09.14
파일 속성&권한  (0) 2022.09.13
Linux 파일 링크, 압축  (0) 2022.09.09
Vi 에디터 정리  (0) 2022.09.09
Linux 기본 명령어 정리  (0) 2022.09.09