이 그룹 이름의 그룹 ID는 무엇입니까?


27

그룹 이름을주는 그룹 ID GID를 얻는 방법

출력은 다음과 같습니다.

Group adm with GID=4

답변:


41

사용 getent하는 대신 수동으로 읽는, 처리 그룹 및 사용자 정보에 대한 명령을 /etc/passwd, /etc/groups등 자신이 사용하는 시스템 /etc/nsswitch.conf이로부터 정보를 가져옵니다, 그리고 파일의 설정이 다른 소스 오버라이드 (override) 할 수있는 위치를 결정합니다. getent이 구성을 따릅니다. getent소스와 상관없이 파일과 동일한 형식으로 데이터를 인쇄하므로 구문 분석과 동일한 방식으로 출력을 구문 분석 할 수 있습니다 /etc/passwd.

getent group sudo | awk -F: '{printf "Group %s with GID=%d\n", $1, $3}'

사용자 이름의 경우 훨씬 더 쉽습니다. 사용 id:

$ id -u lightdm
105

좋아, = awk보다 짧다 perl)
AB

20

이 작업은 cut다음 과 같이 간단하게 수행 할 수 있습니다 .

$ cut -d: -f3 < <(getent group sudo)
27

getent group sudo파일 sudo에서 그룹 에 관한 줄을 얻습니다 /etc/group.

$ getent group sudo
sudo:x:27:foobar

그런 다음 세 번째 필드를로 구분할 수 있습니다 :.

그에 따라 출력 문자열을 원하면 다음에서 명령 대체를 사용하십시오 echo.

$ echo "Group sudo with GID="$(cut -d: -f3 < <(getent group sudo))""
Group sudo with GID=27

% echo "Group cdrom with GID="$(cut -d: -f3 < <(getent group sudo))"" Group cdrom with GID=27좀 더 일반적인 =)하시기 바랍니다
AB

1
왜 프로세스 대체인가? 무슨 일이야 GID="$(getent group cdrom | cut -d: -f3)"?
kos

@kos 필자가 아닌 한 서브 쉘에서 실행하는 것을 좋아하지 않는다 .....
heemayl

@AB Edited ...
heemayl

그러나 그것은 POSIX ... : '(아니, 그냥 농담, 난 정말 차이를 몰랐다. +1
kos

1

더 복잡한 답변은 항상 높이 평가됩니다. 나는 정직하게 읽는 것으로 많은 것을 배웁니다.

메일 그룹의 그룹 ID를 찾고 해당 정보가 저장된 위치를 알지 못했기 때문에이 페이지를 방문했습니다.

당신의 대답은 훌륭합니다-여기에 내가 생각해 낸 간단한 것이 있습니다.

def @ fourof4 : / home $ 고양이 / etc / group | grep mail

메일 : x : 8 :

ID가 정렬되지는 않지만 내 목적에 도움이된다는 것을 알고 있습니다.

Blockquote 이것을보십시오 : awk -F : '/ sudo / {GID = "$ 3}와 함께"그룹 "$ 1"인쇄 "/ etc / group – AB Jun 23 '15 at 15:51 Blockquote

나는 내가 인용 한 것 외에 이것이 언급 된 것을 봅니다 .... 모두가 내 사랑을 얻습니다-내가 당신을 그리워하면 미안합니다.

이것이 그 파일로 안내했습니다.
감사합니다 당신이 원하는 어떤 형태로 나에게 계속 먹이를! 데프


0

사용 perl한 줄을 :

% perl -ne '@elements=(split /:/); printf "Group %s with GID=%s\n",$elements[0],$elements[2]' <<< $(getent group sudo)
Group sudo with GID=27

더 짧거나 (더 나은)

% perl -F/:/ -ane 'printf "Group %s with GID=%s\n",$F[0],$F[2]' <<< $(getent group sudo)
Group sudo with GID=27

2
펄이 당신을 위해 분할 할 수 있다고 확신 합니다. -F또는 -l옵션이 그렇게 한다고 생각합니다 .
muru

0

필요한 해킹 : (아마도 더 나은 답변이있을 수 있습니다)

awk -F\: '{print "Group " $1 " with GID=" $3}' /etc/group | grep "group-name"

더 간단한 버전 (@AB에게 감사) :

awk -F\: '/sudo/ {print "Group " $1 " with GID=" $3}' /etc/group 

예:

$ awk -F\: '{print "Group " $1 " with GID=" $3}' /etc/group | grep sudo 
Group sudo with GID=27

1
awk -F\: '/sudo/ {print "Group " $1 " with GID=" $3}' /etc/group
AB

kos
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.