그룹에서 모든 사용자 제거

그룹에서 모든 사용자 제거

나는 검색한다깨끗한 길"sudo" 그룹의 모든 사용자를 제거합니다. 설치 중에 생성된 여러 배포판에서 사용자는 원하지 않는 sudo 권한을 갖습니다. 저는 (거의) 모든 상황에서 작동하는 자동화된 방법을 찾고 있습니다.

기본적으로 그룹을 지우고 싶습니다.

각 사용자를 삭제하려면 GROUP=my_group; for u in $(getent group $GROUP | sed -e 's/^.*:.*:.*://' -e 's/,/ /g'); do echo gpasswd --delete $u $GROUP; done
다음 명령줄이 작동합니다.
1. 그룹이 존재하지 않는 경우
2. 그룹이 비어 있는 경우
3. 그룹에 한 명의 사용자가 포함된 경우
4. 그룹에 여러 사용자가 포함된 경우
모든 것이 정상입니다. 하지만 그들의 일이 더 간단합니까?

또 다른 방법은 그룹을 삭제한 후 다시 만드는 것입니다. 못생긴?

답변1

일반적으로 말하면, 일부 파일이 그룹에 속할 수 있으므로 그룹을 삭제하면 안 되지만 특정 sudo 사용 사례에는 충분할 수 있습니다.

보다 일반적인 사용 사례는 다음과 같습니다.gpasswd (1)특정 그룹의 멤버십을 설정할 수 있으므로 다음 명령을 실행하는 것으로 충분합니다.

gpasswd sudo -M ''

그룹 sudo가 존재할 때만 이 명령을 실행하려면 이를 getent 호출과 결합하면 됩니다. 즉,

getent group sudo && gpasswd sudo -M ''

답변2

이 명령이 있는 시스템에서 /usr/sbin/groupmems명령("사용자 기본 그룹의 멤버십 관리")을 사용하는 또 다른 방법이 있습니다.

groupmems --purge --group <group_to_clean>

또는 짧은 옵션을 사용하십시오.

groupmems -p -g <group_to_clean>

모든 구성원이 그룹에서 제거됩니다.

CentOS 및 Fedora에서 테스트되었습니다.

관련 정보