강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

사용자및그룹관리4편 : 리눅스 그룹사용자 관리 실무

작성자 정보

  • 구돌 작성
  • 작성일

컨텐츠 정보

본문

사용자및그룹관리4: 리눅스 그룹사용자 관리 실무

 

이번 절에서는 리눅스 서버의 그룹관리에 대해서 알아보도록 하겠습니다. 

 

 , 그룹관리란 새로운 그룹을 생성하거나 기존의 존재하고 있던 그룹을 삭제하거나 그룹정보를 변경하고 확인하는 작업을 의미합니다. 

 

 , 그럼 그룹생성하는 작업부터 알아보도록 하겠습니다. 

 

 

 

 

새로운 그룹을 생성하는 groupadd 명령어 개론

 

groupadd는 새로운 그룹을 생성할때 사용하는 명령어 입니다. 

 

  리눅스에서는 새로운 계정이 생성이 되면 생성되는 계정명과 동일한 이름의 그룹이 생성이 됩니다. 

 

 따라서 리눅스 시스템에서는 자기의 계정이름과 동일한 그룹에 반드시 속하게 됩니다. 

 

 하지만, 특정 그룹을 만들어서 기존의 사용자들이 속하도록 해야하는 경우가 있을 수 있습니다. 

 

  , 예를 들어 한 회사의 총무부서인 chongmu라는 그룹을 만들어서 총무부서에 속하는 사원들을 모두 속하게 할 수가 있습니다. 

 

 

 

이런 경우에 사용하는 명령어가 groupadd명령어 입니다. 

 

  그리고 groupadd 명령어로 생성되는 그룹은 특별한 옵션이 주어지지 않는 한 GID 0~499까지는 할당되지 않습니다. 

 

  , GID 500이상인 그룹만이 생성됩니다. 

 

 이는 GID 499까지는 리눅스시스템에서 사용하는 시스템용 GID이기 때문 입니다. 

 

 

 

사용형식  :  groupadd [-g GID [-o]] [-r] [-f] 새로생성될그룹명

 

, 그럼 이제부터 groupadd의 실제예를 보도록 하겠습니다. 

 

 

 


특정이름의 새로운 그룹생성하기

 

먼저, 현재 시스템에 존재하지 않는 새로운 이름의 그룹을 생성해 보도록 하겠습니다. 

 

  아래의 예는 chongmu라는 그룹이름으로 새로운 그룹을 만들었습니다. 

 

 

[root@host3 root]# groupadd chongmu
[root@host3 root]#

 

위와 같이 chongmu라는 새로운 그룹을 생성하면 /etc/group파일의 내용에 새로운 그룹이 생성되어 있음을 확인할 수 있습니다. 

 

  아무런 옵션없이 새로운 그룹을 생성하면 기존에 있던 그룹의 마지막번호 다음번호를 GID로 할당하여 chongmu라는 그룹이 생성 됩니다. 

 

  

[root@host3 root]# tail /etc/group
apache:x:48:
postdrop:x:90:
postfix:x:89:
squid:x:23:
webalizer:x:67:
bible:x:500:
bible1:x:502:
bible2:x:503:
bible3:x:504:
chongmu:x:505:
[root@host3 root]#

 

위의 결과를 보면 chongmu라는 그룹이 생성되기 전에 마지막 그룹인 bible3 GID 504번으로 생성되어 있었습니다. 

 

   여기서 chongmu라는 새로운 그룹이 생성이 되면서 505번이 자동으로 할당된 것입니다. 

 

 

 

 

그룹의 GID번호를 지정하여 새그룹 생성하기

 

groupadd명령어로 새로 생성되는 그룹의 GID를 지정하지 않으면 현재 생성되어 있는 마지막 GID번호의 다음번호를 새그룹의 GID로 설정하는 것이 기본입니다. 

 

 하지만 groupadd명령어에 -g옵션을 사용하시면 새로 생성되는 그룹에 원하는 GID를 지정하여 생성할 수 있습니다. 

 

 

 

, 이번에는 GID를 자동할당이 아닌 GID번호를 지정하여 생성하는 예 입니다. 

 

 새로 생성되는 그룹의 GID를 지정하려면 -g옵션을 사용합니다. 

 

  다음의 예를 보겠습니다. 

 

 

[root@host3 root]# groupadd -g 1000 youngup
[root@host3 root]#

 

위의 예는 새로운 그룹인 youngup이라는 그룹을 생성하면서 GID 1000번을 할당 하였습니다. 

 

 

그 결과 아래와 같이 /etc/group youngup이라는 그룹에 GID 1000번을 할당하여 생성이 되었음을 알 수 있습니다. 

 

 

[root@host3 root]# tail /etc/group
postdrop:x:90:
postfix:x:89:
squid:x:23:
webalizer:x:67:
bible:x:500:
bible1:x:502:
bible2:x:503:
bible3:x:504:
chongmu:x:505:
youngup:x:1000:
[root@host3 root]#

 


시스템관리용 그룹생성하기

 

기본적으로는 새로생성하는 그룹에게 0번부터 499까지는 GID가 할당되지 않습니다. 

 

  하지만 시스템관리용으로 499이하의 GID를 생성해야하는 경우도 있을 것입니다. 

 

 따라서 이번 예에서는 시스템용 GID 0번부터 499번까지의 GID를 할당하는 방법에 대해서 알아보겠습니다. 

 

 

 

이럴 경우에는 다음과 같이 -r옵션을 사용 합니다. 

 

 

[root@host3 root]# groupadd -r sysadmin
[root@host3 root]#

 

위의 예와 같이 -r옵션을 사용하여 sysadmin이라는 그룹명을 생성하였습니다. 

 

  -r옵션을 사용하게 되면 0번부터 499까지의 할당되어있지 않은 GID중 가장 빠른 번호를 할당해 줍니다. 

 

 

 

아래는 그 결과를 확인한 것입니다. 

 

 

[root@host3 root]# tail /etc/group
postfix:x:89:
squid:x:23:
webalizer:x:67:
bible:x:500:
bible1:x:502:
bible2:x:503:
bible3:x:504:
chongmu:x:505:
youngup:x:1000:
sysadmin:x:11:
[root@host3 root]#

 

, sysadmin이라는 그룹의 GID 11로 할당이 되어 있다는 것을 알 수 있습니다. 

 

 , 시스템에서 사용할 그룹인 sysadmin GID 11로 할당하여 생성한 것입니다. 

 

 

 

 

불필요해진 그룹 삭제하는 groupdel의 개론과 활용

 

groupdel명령어는 현재 시스템에 생성되어있는 기존의 특정그룹을 삭제하는 명령어입니다. 

 

 ,  존재하지않는 새로운 그룹을 생성하는 groupadd와는 반대 명령어입니다. 

 

  , 불필요해진 그룹을 삭제하기 위해 사용하는 명령어가 groupdel입니다. 

 

  먼저, 간단한 예를 들기 위하여 현재 시스템내의 그룹파일인 /etc/group의 내용이 다음과 같다고 가정 하겠습니다. 

 

  , groupadd로 새로 생성한 chongmu, youngup, sysadmin그룹이 아래와 같이 마지막에 존재하고 있습니다. 

 

 

 

[root@host3 root]# tail /etc/group
postfix:x:89:
squid:x:23:
webalizer:x:67:
bible:x:500:
bible1:x:502:
bible2:x:503:
bible3:x:504:
chongmu:x:505:
youngup:x:1000:
sysadmin:x:11:
[root@host3 root]#

 

위의 그룹들 가운데 sysadmin 그룹을 삭제하여 보겠습니다. 

 

  그룹을 삭제하려면 간단히 "groupdel 그룹명"이라고하면 됩니다. 

 

  아래는 sysadmin이라는 그룹을 삭제하는 예입니다. 

 

 

[root@host3 root]# groupdel sysadmin
[root@host3 root]#


위와 같이 특정 그룹을 삭제하고 나면 /etc/group파일내에 해당그룹의 행이 자동으로 삭제됩니다. 

 

  아래의 예는 위에서 삭제한 sysadmin이라는 그룹이 삭제된 후의 /etc/group파일의 내용을 확인한 것입니다. 

 

 

[root@host3 root]# tail /etc/group
postdrop:x:90:
postfix:x:89:
squid:x:23:
webalizer:x:67:
bible:x:500:
bible1:x:502:
bible2:x:503:
bible3:x:504:
chongmu:x:505:
youngup:x:1000:
[root@host3 root]#

 

위의 내용을 보시는 바와 같이 sysadmin이라는 그룹이 삭제되었음을 알 수 있습니다. 

 

 이후부터는 sysadmin이라는 그룹의 사용은 불가능하게 됩니다. 

 

 

 

이번에는 chongmu youngup이라는 그룹 두개를 각각 삭제 하였습니다. 

 

 

[root@host3 root]# groupdel chongmu
[root@host3 root]# groupdel youngup

 

아래의 예는 chongmu라는 그룹과 youngup이라는 그룹이 삭제되고 난 후의 /etc/group파일의 내용입니다. 

 

 

[root@host3 root]# tail /etc/group
apache:x:48:
postdrop:x:90:
postfix:x:89:
squid:x:23:
webalizer:x:67:
bible:x:500:
bible1:x:502:
bible2:x:503:
bible3:x:504:
[root@host3 root]#

 

이상과 같이 groupdel이라는 명령어는 기존에 존재하고 있던 그룹을 삭제하는 명령어입니다. 

 

  서두에서 말씀드린바와 같이 이 명령어는 groupadd명령어와 반드시 함께 익혀두어야 합니다. 

 

 

 

 

현재 계정사용자가 소속되어 있는 모든 그룹들 확인하는 groups 개론

 

groups명령어는 현재사용자가 속해있는 그룹들을 확인하는 명령어입니다. 

 

  모든 리눅스 계정사용자는 한개이상의 그룹에 소속되어 있습니다. 

 

  그룹정보는 /etc/group에 등록되어 있으며 useradd명령어로 계정이 생성될 때에 자기자신의 ID를 그룹명으로 하는 그룹이 생성되어 소속되게 됩니다. 

 

 

 

사용형식 : groups [사용자명...]

 

참고로 id라는 명령어로 확인하면 groups라는 명령어로 확인하는 소속된 그룹리스트를 결과의 오른쪽편에 출력해 줍니다. 

 

 다음 예에서 groups명령어와 id명령어의 결과를 참고하여 비교해 보시기 바랍니다. 

 

 

 

 

한개의 그룹에 소속된 사용자의 그룹정보확인

아래의 예에서 현재사용자 sspark groups라는 명령어와 id라는 명령어를 각각 실행한 것입니다. 

 

 

[sspark@host3 sspark]$ groups
sspark
[sspark@host3 sspark]$
[sspark@host3 sspark]$ id
uid=501(sspark) gid=501(sspark) groups=501(sspark)
[sspark@host3 sspark]$

 

그리고 groups라는 명령어의 결과 sspark사용자는 sspark이라는 그룹에 소속되어 있음을  알 수 있으며,  id라는 명령어의 결과에서는 소속그룹과 소속된 GID까지 함께 알 수가 있습니다. 

 

 

 

 

여러개의 그룹에 소속된 사용자의 그룹정보 확인

 

이번에는 bible이라는 사용자의 소속그룹정보를 확인한 것입니다. 

 

  아래의 예는 bible이라는 사용자가 groups라는 명령어와 id라는 명령어를 차례대로 실행한 것으로서 groups명령어의 결과 bible사용자는 3개의 그룹(bible, sys, wheel, users)에 소속되어있음을 알 수 있으며  그 아래 id명령어의 결과로도 소속된 그룹정보와 GID번호도 함께 알 수 있습니다. 

 

 

[bible@host3 bible]$ groups
bible sys wheel users
[bible@host3 bible]$ id
uid=500(bible) gid=500(bible) groups=500(bible),3(sys),10(wheel),100(users)
[bible@host3 bible]$

 

참고로 그룹정보의 확인은 /etc/group 파일에 정의되어 있습니다. 

 

  따라서 특정사용자를 특정그룹에 소속되게 하려면 /etc/group 파일의 특정그룹명의 오른쪽에 추가하기만 하면 됩니다. 

 

 물론 이 작업은 root권한으로만 할 수 있습니다. 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 전체 회원수 59,500 명
  • 전체 게시물 31,148 개
  • 전체 댓글수 11,895 개