SW/리눅스

Linux : Groups 나열 방법, 예제, 명령어

얇은생각 2021. 10. 22. 07:30
반응형

Linux에서 그룹은 사용자의 모음입니다. 그룹의 주요 목적은 그룹 내의 사용자 간에 공유할 수 있는 특정 리소스에 대한 읽기, 쓰기 또는 실행 권한 집합을 정의하는 것입니다. 기존 그룹에 부여된 권한을 활용하도록 사용자를 추가할 수 있습니다.

사용자가 멤버로 속한 모든 그룹을 표시하는 방법을 설명합니다. 또한 그룹의 모든 구성원을 나열하는 방법도 설명합니다.

 

 

Linux : Groups 나열 방법, 예제, 명령어

 

 

리눅스 그룹

사용자가 속할 수 있는 그룹에는 두 가지 유형이 있습니다.

Primary 또는 로그인 그룹 – 사용자가 만든 파일에 할당된 그룹입니다. 일반적으로 주 그룹의 이름은 사용자의 이름과 동일합니다. 각 사용자는 정확히 하나의 주 그룹에 속해야 합니다.

보조 또는 보조 그룹 - 사용자에게 특정 권한을 부여하는 데 사용됩니다. 사용자는 0개 이상의 보조 그룹의 멤버일 수 있습니다.

 

 

 

사용자가 멤버로 속한 모든 그룹을 나열

사용자가 속한 그룹을 찾는 방법은 여러 가지가 있습니다. 

주 사용자의 그룹은 /etc/passwd 파일에 저장되고 보조 그룹(있는 경우)은 /etc/그룹 파일에 나열됩니다.

 사용자 그룹을 찾는 한 가지 방법은 cat, less 또는 grep를 사용하여 해당 파일의 내용을 나열하는 것입니다. 또 다른 쉬운 옵션은 시스템 사용자 및 그룹에 대한 정보를 제공하는 명령을 사용하는 것입니다.

 

 

 

groups 명령을 사용

사용자가 멤버로 속한 모든 그룹을 나열할 때 가장 기억에 남는 명령은 groups 명령입니다. 인수 없이 실행되면 명령은 현재 로그인된 사용자가 속한 모든 그룹의 목록을 인쇄합니다.

groups

 

 

첫 번째 그룹은 주 그룹입니다.

john adm cdrom sudo dip plugdev lpadmin sambashare

 

 

특정 사용자가 속한 모든 그룹의 목록을 가져오려면 groups 명령에 username을 인수로 제공합니다.

groups jjeongil

 

 

첫 번째 그룹이 주 그룹이 되기 전과 동일합니다.

jjeongil : jjeongil sudo

 

 

 

id 명령을 사용

ID 명령은 지정된 사용자 및 해당 그룹에 대한 정보를 인쇄합니다. 사용자 이름이 생략되면 현재 사용자에 대한 정보가 표시됩니다. 

예를 들어 사용자 Linux에 대한 정보를 가져오려면 다음을 입력합니다.

id jjeongil

# uid=1001(jjeongil) gid=1001(jjeongil) groups=1001(jjeongil),27(sudo)

 

 

명령은 사용자 ID(uid), 사용자의 기본 그룹(gid) 및 사용자의 보조 그룹(그룹)을 표시합니다.

숫자 대신 이름만 인쇄하려면 -n 옵션을 사용합니다. 옵션 -g는 주 그룹과 -Gall 그룹만 인쇄합니다.

다음 명령은 현재 사용자가 멤버로 속해 있는 그룹의 이름을 인쇄합니다.

id -nG

# john adm cdrom sudo dip plugdev lpadmin sambashare

 

 

 

그룹의 모든 멤버를 나열

그룹의 모든 멤버를 나열하려면 getent group 명령 다음에 그룹 이름을 사용합니다.

예를 들어 이름이 developers인 그룹의 멤버를 확인하려면 다음 명령을 사용합니다.

getent group developers

# developers:x:126:frank,mary

 

 

 

그룹이 존재하는 경우 명령은 그룹과 그룹의 모든 구성원을 인쇄합니다.

출력이 없는 경우 그룹이 존재하지 않음을 의미합니다.

 

 

 

모든 그룹을 나열

시스템에 있는 모든 그룹을 보려면 /etc/그룹 파일을 열기만 하면 됩니다. 이 파일의 각 줄은 한 그룹에 대한 정보를 나타냅니다.

less /etc/group

 

 

또 다른 옵션은 모든 그룹 목록을 쿼리하는 데 사용할 수 있는 그룹 데이터베이스를 포함하여 /etc/nsswitch.conf 파일에 구성된 데이터베이스의 항목을 표시하는 getent 명령을 사용하는 것입니다.

모든 그룹의 목록을 가져오려면 다음 명령을 입력합니다.

getent group

 

 

출력은 /etc/그룹 파일의 내용을 표시할 때와 동일합니다. 사용자 인증에 LDAP를 사용하는 경우 /etc/그룹 파일과 LDAP 데이터베이스의 모든 그룹이 표시됩니다.

awk나 cut을 사용하여 그룹 이름이 포함된 첫 번째 필드만 인쇄할 수도 있습니다.

getent group | awk -F: '{ print $1}'
getent group | cut -d: -f1

 

 

사용자가 멤버로 속해 있는 그룹을 찾는 방법을 배웠습니다. 동일한 명령은 Ubuntu, CentOS, RHEL, Debian 및 Linux Mint를 포함한 모든 Linux 배포에 적용됩니다.

반응형