Linux

Linux 사용자 그룹 관리 명령어

Namiz_IT 2024. 7. 21. 17:19

 

 리눅스 시스템에서 사용자 그룹(group)은 여러 사용자 계정을 하나의 단위로 관리하는 기능이다. 특정 그룹에게 파일이나 시스템 리소스에 대한 권한을 부여하면, 그 그룹에 속한 모든 사용자가 해당 권한을 이용할 수 있다.

groups: 사용자의 그룹 정보 확인
groupadd: 새로운 그룹 생성
newgrp: 사용자의 기본 그룹 변경 (즉시 적용)
groupdel: 그룹 삭제
groupmod: 그룹 정보 수정

groups 명령어

리눅스 시스템에서 groups 명령어는 사용자의 소속 그룹 정보를 확인하는 데 사용된다.

 

groups 명령어 사용 방법

groups [사용자 이름]
  • 사용자 이름 (선택사항): 특정 사용자의 그룹 정보 확인

groups 명령어 사용 예시

예시 1: 자신의 그룹 정보 확인

# whoami 명령어로 현재 사용자 확인 (smith)
whoami smith

# groups smith 명령어로 smith 사용자의 그룹 정보 확인
groups smith
smith users

 

 위 예시에서는 whoami 명령어를 이용하여 현재 로그인한 사용자를 확인한 후 (smith), groups smith 명령어를 사용하여 smith 사용자의 소속 그룹을 확인한다.

 

예시 2: 다른 사용자의 그룹 정보 확인

# groups jones 명령어로 jones 사용자의 그룹 정보 확인
groups jones
jones root jones : jones users root : root bin daemon sys adm disk wheel src

 

사용자 이름을 함께 입력하면 다른 사용자의 그룹 정보도 확인할 수 있다.


groupadd 명령어

리눅스 시스템에서 groupadd 명령어는 새로운 사용자 그룹을 생성하는 데 사용됩니다. (addgroup 명령어와 혼동하지 않도록 주의)

 

groupadd 명령어 사용 방법

sudo groupadd [옵션] 그룹 이름
  • sudo: 관리자 권한으로 명령어 실행 (꼭 필요)
  • 옵션 (선택사항): groupadd 명령어 실행 시 추가적인 설정
  • 그룹 이름: 생성할 그룹의 이름

groupadd 주의사항

  • 사용자 이름과 동일한 이름의 그룹을 생성할 수 있습니다.

groupadd 옵션

  • -g gid : 그룹 식별 번호 (GID) 지정 (일반적으로 자동으로 생성됨)
  • -f : 동일한 이름의 그룹이 이미 존재하는 경우에도 생성을 시도하지만, 에러 메시지를 출력하고 종료

groupadd 사용 예시

예시 1 : "friends"라는 그룹 생성

sudo groupadd friends

위 명령어는 "friends"라는 이름의 새로운 그룹을 생성한다.

 

예시 2 : 중복 생성 방지 (권장)

sudo groupadd -f friends

-f 옵션을 사용하면 동일한 이름의 그룹이 이미 존재하는 경우에도 생성을 시도하지만, 에러 메시지를 출력하고 종료하여 중복 생성을 방지할 수 있다. 따라서 실제 운영에서는 -f 옵션을 함께 사용하는 것이 좋다.


newgrp 명령어

 리눅스 시스템에서 사용자는 여러 그룹에 속할 수 있다. 특정 그룹에 추가된 경우 (예: usermod -aG 명령어 사용), 일반적으로 다음 로그인부터 해당 그룹의 권한을 이용할 수 있다. 하지만 newgrp 명령어를 사용하면 이 번거로움을 해결할 수 있다.

 newgrp 명령어는 새로운 그룹 이름을 인수로 받아 해당 그룹의 권한으로 실행되는 새로운 쉘 세션을 열어준다. 이를 통해 새로 추가된 그룹 권한을 즉시 사용할 수 있다. 이러한 효과는 해당 쉘 세션이 실행되는 동안만 유지되지만, 로그아웃하고 다시 로그인하는 것보다 간편하다. 쉘 세션을 종료하면 기본 그룹 ID로 되돌아간다.

 

newgrp 명령어 사용 예시

예시: 사용자가 "video" 그룹에 추가되었음

  1. 현재 그룹 확인:
groups
smith sudo docker  // video 그룹이 보이지 않음
  1. newgrp 명령어를 이용하여 "video" 그룹 권한 설정:
newgrp video  // video 그룹으로 권한 설정
  1. 새로운 쉘 세션에서 현재 그룹 확인:
groups
video sudo docker  // 이제 video 그룹이 보임

위 과정을 통해 사용자는 "video" 그룹의 권한을 즉시 사용할 수 있게 되었다. (예: sudo docker 명령어 실행 가능)

  1. 쉘 세션 종료:
exit  // 기본 그룹 ID로 복귀

 

newgrp 명령어 옵션

  • -: 단일 대시 (-) 옵션만 사용하면 newgrp 명령어는 su -l 명령어처럼 로그인 시와 같은 환경을 설정한다.

groupdel 명령어

리눅스 시스템에서 groupdel 명령어는 사용자 그룹을 삭제하는 데 사용된다.

 

groupdel 명령어 사용 방법

sudo groupdel 그룹 이름
  • sudo: 관리자 권한으로 명령어 실행 (꼭 필요)
  • 그룹 이름: 삭제할 그룹의 이름

groupdel 주의사항

  • groupdel 명령어는 그룹에 속한 파일의 소유권을 변경하지 않는다. 삭제된 그룹의 그룹 ID를 가진 파일들은 그대로 남아 있게 되지만, 해당 그룹은 더 이상 존재하지 않기 때문에 문제가 발생할 수 있다.

groupdel 사용 전 파일 정리 권장 사항

groupdel 명령어를 사용하기 전에 다음과 같은 작업을 수행하는 것이 좋다.

  1. 해당 그룹이 소유하고 있는 파일 목록 확인:
sudo find / -group friends -print > /tmp/friend.files
  • find / -group friends: 시스템 전체를 검색하여 "friends" 그룹이 소유한 모든 파일 찾기
  • -print: 검색된 파일 경로 출력
  • > /tmp/friend.files: 검색 결과를 /tmp/friend.files 파일에 저장
  1. 필요한 경우 파일 소유권 변경:

삭제하려는 그룹이 소유하고 있는 파일들을 별도로 관리하거나 다른 그룹에 소유권을 할당하는 등 필요한 조치를 취한다.

 

groupdel 사용 예시

예시: "friends" 그룹 삭제

# 1. 사전 조치: 해당 그룹이 소유한 파일 확인 (권장)
# (예시 명령어는 앞서 설명 참조)

# 2. 그룹 삭제
sudo groupdel friends

위 예시에서는 먼저 "friends" 그룹이 소유하고 있는 파일을 확인하는 작업 (권장)을 수행한 후, 실제로 groupdel 명령어를 사용하여 "friends" 그룹을 삭제한다.


groupmod 명령어

리눅스 시스템에서 groupmod 명령어는 기존 사용자 그룹의 이름이나 그룹 식별 번호 (GID)를 변경하는 데 사용된다.

 

groupmod 명령어 사용 방법

sudo groupmod [옵션] 그룹 이름
  • sudo: 관리자 권한으로 명령어 실행 (꼭 필요)
  • 옵션 (선택사항): groupmod 명령어 실행 시 추가적인 설정
  • 그룹 이름: 변경할 그룹의 이름

groupmod 주의사항

  • groupmod 명령어는 그룹에 속한 파일의 정보를 변경하지 않는다. 즉, 시스템상의 그룹 이름이나 GID만 변경되며, 그룹이 소유하고 있는 파일들의 실제 소유권은 변경되지 않는다.

groupmod 옵션

  • -n name: 그룹 이름을 "name"으로 변경 (안전)
  • -g gid: 그룹의 GID를 "gid"로 변경 (위험) - 원래 GID를 가진 파일들은が無効(무효)한(mu효한) 그룹 소유권이 되므로 별도 정리가 필요하다.

groupmod 사용 예시

예시 1: 그룹 이름 변경

sudo groupmod -n newfriends friends

위 명령어는 "friends"라는 그룹의 이름을 "newfriends"로 변경한다.

 

예시 2: 그룹 GID 변경 (위험)

sudo groupmod -g 1000 friends

위 명령어는 "friends"라는 그룹의 GID를 1000으로 변경한다. 하지만 이 경우 원래 "friends" 그룹의 GID를 가진 파일들은 무효한 그룹 소유권이 되므로 별도의 정리가 필요하다. (주의: 시스템 환경에 따라 문제가 발생할 수 있으므로 권장하지 않음)


문서 참조

https://www.oreilly.com/library/view/linux-pocket-guide/9781098157951/

반응형

'Linux' 카테고리의 다른 글

Linux 패키지 설치 명령어  (0) 2024.07.22
LinuxLinux 파일 속성 관련 명령어 #2  (0) 2024.07.21
Linux 프로세스 관련 명령어  (0) 2024.07.21
Linux 파일 검색 명령어  (0) 2024.07.21
Linux 파일 속성 관련 명령어 #1  (0) 2024.07.21