레거시 도메인에서 Active Directory 기반 Samba로 마이그레이션을 준비하고 있습니다. 현재 모든 그룹은 동일합니다. 사용자는 그룹에 속하지만 그룹은 다른 그룹에 속할 수 없습니다. 이를 변경하고 싶기 때문에 사용자가 포함된 모든 그룹을 나열해야 합니다.
문제는 수천 명의 사용자와 수천 개의 그룹이 있다는 것입니다. 나에게 필요한 것은 구성원이 2명 이상인 그룹을 나열한 다음 명령줄에 그룹 이름을 표시하는 것입니다. 이렇게 하면 사용자 그룹이나 사용자가 한 명뿐인 그룹이 제거됩니다.
데비안에서는 어떻게 할 수 있나요?
답변1
일반적으로 말하면,
getent group | awk -F ':' '$4 ~ "," {print $1}'
그룹 목록(사용자 목록)의 네 번째 콜론으로 구분된 필드에 쉼표가 포함되어 있으면 첫 번째 콜론으로 구분된 필드(그룹 이름)가 인쇄됩니다.
답변2
아마도 최선의 접근 방식은 아니지만 다음과 같이 작동할 수 있습니다.
awk -F: '$NF ~ "," { print $1 }' /etc/group
답변3
그룹 구성원은 쉼표로 구분되므로 구성원이 여러 명인 그룹에만 쉼표가 있습니다. 이러한 그룹 파일 줄 내에서는 첫 번째 콜론 앞의 줄 내용만 표시됩니다.
grep , /etc/group | cut -d: -f 1