나는 검색한다깨끗한 길"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에서 테스트되었습니다.