2022 데이터 사이언스/Linux

13. 사용자와 그룹(4): 그룹

gool 2022. 5. 28. 23:57
그룹은 사용자 계정을 묶어서 관리하기 위해 생성하는 계정이다.

 

 

 

그룹을 만들어 사용자 계정을 그룹에 소속시켜 사용한다.

예를 들어 그룹에 권한을 부여하여 소속된 모든 사용자가 동일한 권한을 적용받도록 할 수 있다.

 

 

 

그룹 정보

 

사용자와 마찬가지로 그룹과 관련된 정보를 확인할 수 있는 파일이 있다.

/etc/group은 그룹의 일반적인 정보가 들어있는 파일이다.

 

 

그룹 정보 각 부분의 의미는 다음과 같다.

  • itbank (그룹 이름) : 뒤에 오는 정보가 어느 그룹의 정보인지 출력
  • x (암호) : 그룹에는 별도의 암호를 지정하지 않음
  • 1000 (GID) : 해당 그룹의 고유 번호
  • <마지막 필드> : 그룹에 일반 소속된 사용자들의 목록 출력

 

* 단, 운영체제 설치 시에 생성된 그룹은 자신을 GID로 하는 사용자를 목록에 담고 있다.

 

 

 

그룹 생성

 

그룹을 생성하는 명령어는 다음과 같은 형식으로 사용된다.

 

 

groupadd   [옵션]   []      [옵션]   []   그룹명

 

 

useradd 명령어와 마찬가지로 GID를 지정해주는 -g 옵션을 사용할 수 있다.

-g 옵션을 사용하지 않으면 GID의 기본값은 현재 가장 큰 GID에 1을 더한 값이다.

 

옵션 없이 사용

 

-g 옵션 사용

 

groupadd 명령어를 옵션 없이 사용했을 때 g1의 GID는 itbank의 GID에 1을 더한 1001이다.

-g 옵션을 사용했을 때 g2의 GID가 1111로 잘 설정된 것을 볼 수 있다.

 

아직 그룹에 일반 소속된 사용자가 없어 g1, g2 모두 마지막 필드가 비어있다.

 

 

 

그룹 정보 수정

 

그룹 정보를 수정하는 명령어가 사용되는 형식이다.

 

 

groupmod   옵션   값   [옵션]   []      [옵션]   []   그룹명

 

 

GID를 지정하는 -g 옵션과 그룹 이름을 지정하는 -n 옵션을 사용할 수 있다.

 

-g 옵션 사용

 

-n 옵션 사용

 

 

 

그룹 삭제

 

그룹 삭제는 별도의 옵션 없이 아래와 같은 형식으로 이루어진다.

 

 

groupdel   그룹명

 

 

단, 사용자가 자신의 주요 그룹, 즉 GID로 쓰고 있는 그룹은 삭제할 수 없다.

 

그룹 삭제

 

주요 그룹 삭제 불가 메시지

 

 

 

사용자와 그룹

 

사용자가 그룹에 소속되는 방식을 두 가지로 분류할 수 있다.

 

(1) 사용자가 그룹을 자신의 주요 그룹으로 사용(GID로 사용)

(2) 사용자가 그룹에 일반 소속되어 사용

 

사용자를 생성하면, 자동으로 같은 이름의 그룹이 함께 생성된다.

이때 사용자는 기본값으로 함께 만들어진 그룹을 자신의 주요 그룹으로 사용한다.

 

아래 화면에서 useradd, groupadd를 각각 두 번씩 진행했지만 그룹은 4개가 생성되었다.

 

 

 

사용자의 주요 그룹과 사용자가 일반 소속된 그룹은 언제든지 변경이 가능하다.

 

 

1) 주요 그룹(GID) 변경

 

usermod 명령어의 -g 옵션을 사용하여 주요 그룹을 변경할 수 있다.

user1의 주요 그룹을 g1(1001)에서 g3(1003)으로 변경해준다.

 

 

여기서 사용된 id 명령어는 사용자의 UID, GID, 일반 소속된 그룹의 목록을 출력해준다.

간단하게 id 사용자명 형식으로 사용된다.

 

 

 

2) 그룹에 일반 소속된 사용자 목록 변경

 

일반 소속된 사용자 목록을 변경하는 방법에는 두 가지가 있다.

 

(1) usermod -G

 

먼저, usermod 명령어의 -G 옵션을 사용하는 것이다.

 

 

user2가 g2의 일반 사용자 목록에 잘 소속된 것을 볼 수 있다.

하지만 usermod의 -G 옵션은 단점이 명확하여 가급적이면 사용하지 않는 것이 좋다.

 

 

사용자는 여러 그룹에 동시에 소속될 수 있다.

하지만 usermod 사용 시 user2는 기존 소속되어 있던 g2 그룹에서 빠지고 g1 그룹에 소속된다.

usermod 사용 환경에서 사용자를 여러 그룹에 동시에 소속시키고 싶다면,

아래 화면처럼 -G 옵션 뒤에 사용자를 소속시키고 싶은 그룹을 모두 적어주어야 한다.

 

 

-G 옵션 뒤에 빈 따옴표('')를 사용하여 사용자를 모든 일반 소속된 그룹에서 제외시킬 수 있다.

 

 

 

(2) gpasswd

 

두 번째는 gpasswd 명령어를 사용하는 것이다.

그룹의 일반 소속된 사용자 목록을 변경하는 명령어로, 다음과 같은 형식을 따른다.

 

 

gpasswd   옵션   값   그룹명

 

 

* 옵션

  • -a : 값에 사용자명을 입력하여 그룹에 일반 소속된 사용자 목록에 사용자 추가
  • -d : 값에 사용자명을 입력하여 그룹에 일반 소속된 사용자 목록에서 사용자 제거

 

-a, -d 옵션을 사용하여 간편하게 사용자를 그룹에 등록하고 제거할 수 있다.

등록 시 기존 그룹에 더해 등록되는 것이므로 소속시키고 싶은 그룹을 모두 적어줄 필요가 없다.

 

 

 

다음 실습에 앞서 불필요한 사용자와 그룹을 정리해주고, 기본 정보를 원래대로 수정한다.

 

 

 

* 사용자 복구

정석적인 방법은 아니므로 참고만 해두자.

/export/home 내부에 홈 디렉토리를 가지는 itbank 사용자가 있다고 한다.

실수로 itbank 사용자의 홈 디렉토리를 삭제하여, 홈 디렉토리 없이 사용자 정보만 남아있다.

userdel 명령어로 itbank 사용자 정보도 지워준 뒤, useradd 명령어로 다시 사용자를 추가한다.

 

 

 

 

사용자 생성 실습 예제

 

 

현재 기본 정보

 

 

(풀이)

 

 

 

여기까지 해서 사용자와 그룹 파트의 포스팅을 모두 마친다.

다음 포스팅에 앞서 실습에 사용된 불필요한 항목들을 모두 삭제해준다.