삭제된 그룹이 Linux의 기본 그룹을 통해 계속 작동할 수 있습니까?

삭제된 그룹이 Linux의 기본 그룹을 통해 계속 작동할 수 있습니까?

내가 구축한 분석 프로그램을 사용하면서 사용자가 기본 그룹을 삭제된 그룹(더 이상 /etc/group 파일에 없음)으로 설정하는 버그에 부딪혔습니다. 영향의 범위를 확인하기 위해 몇 가지 테스트를 실행한 결과 이상한 동작이 발생했습니다.

  • 그룹이 삭제되더라도 해당 그룹이 사용자의 기본 그룹이고 해당 ID와 관련된 권한이 sudoers 파일에 존재하는 경우 사용자는 해당 권한을 계속 얻습니다.
  • 나중에 그룹이 생성되면 이전에 삭제한 그룹과 동일한 그룹 ID를 얻을 수 있으며 사용자의 기본 ID가 해당 그룹이 됩니다.

sudoers에서 권한 확인을 할 때 /etc/group 파일과 사용자의 기본 그룹을 별도로 검색하는 것 같은데, 기본 그룹이 실제 그룹일 필요는 없나요?

질문: 맞습니까? 내가 무엇을 놓치고 있나요? 클라이언트가 기본 그룹을 삭제한 이유는 확실하지 않지만 잘못된 것 같습니다.

장비 사양:

리눅스 우분투 20.04.1

5.13.0-1017-하늘색x86_64

재현 단계:

  1. 새 사용자 생성: sudo useradd testuser 사용자와 기본 그룹과 동일한 이름을 가진 별도의 새 그룹이 생성됩니다.

  2. 새 사용자 그룹 확인 중: groups testuser 결과: 'testuser : testuser'

  3. 명령을 통해 새 그룹 삭제: sudo groupdel testuser 다음 오류 메시지를 받았습니다: groupdel: 'testuser' 사용자의 기본 그룹을 삭제할 수 없습니다.

  4. 수동 파일 조정을 통해 새 그룹 삭제: sudo nano /etc/group 관련 그룹의 마지막 행을 삭제하고 파일을 저장할 수 있기 때문에 작동합니다.

  5. 새 사용자의 그룹을 다시 확인했습니다. groups testuser 결과: "testuser:group: 그룹 ID 1003 1003의 이름을 찾을 수 없습니다."

  6. 새 사용자로 로그인해 보세요. 그룹을 성공적으로 삭제한 후에도 로그인할 수 있습니다.

  7. 새 사용자를 사용하여 sudo 명령을 실행하려는 시도가 예상대로 실패합니다. 'testuser가 sudoers 파일에 없습니다. 이번 사건은 보도될 것"

  8. 권한 있는 계정(Sudo 권한 포함)으로 다시 로그인

  9. 4단계에서 제거한 그룹 이름에 sudoers 파일의 sudoer 권한을 부여합니다. sudo nano /etc/sudoers 그런 다음 이를 파일에 추가합니다. %testuser ALL=(ALL:ALL) ALL

  10. 새 사용자로 로그인하고 sudo 명령을 다시 실행해도 여전히 실패합니다. 'testuser가 sudoers 파일에 없습니다. 이번 사건은 보도될 것"

  11. 4단계에서 제거한 그룹 ID에 sudoers 파일의 sudoer 권한을 부여합니다. sudo nano /etc/sudoers 그런 다음 이를 파일에 추가합니다. %#1003 ALL=(ALL:ALL) ALL

  12. 새 사용자로 로그인하고 sudo 명령을 다시 성공적으로 실행하면 사용자는 이제 SUDO 권한을 갖게 됩니다. (정말 그렇지 않기를 바랍니다.)

  13. 새 그룹 만들기: sudo groupadd testforid ID 1003으로 새 그룹을 만듭니다.

  14. 새 사용자 그룹을 다시 확인하세요. groups testuser 결과: 'testuser : testforid'

답변1

예, "삭제된" 그룹은 여전히 ​​기본 그룹으로 작동합니다. 실제로 생성되지 않은 그룹은 기본 그룹으로 작동합니다.

궁극적으로 사용자와 그룹에게 가장 중요한 것은 식별자이기 때문입니다. 사용자와 기본 그룹 간의 매핑,예를 들어에서는 /etc/passwd식별자를 연결합니다. 귀하의 예에서는 testuser기본 그룹 1003이 할당됩니다. 귀하의 경우 그룹에 이름이 있는지 여부는 /etc/group중요하지 않습니다. 그룹 1003 sudo권한을 부여하면 testuser해당 권한은 해당 그룹을 통해 부여됩니다.

사용자 이름과 식별자는 동일한 규칙을 따릅니다. 즉, 궁극적으로 중요한 것은 사용자 식별자입니다. 특정 사용자가 소유한 파일은 이름이 아닌 식별자로 해당 사용자와 연결되며, 사용자가 삭제되면 연결이 유지됩니다. 시스템의 사용자와 일치하지 않는 사용자 식별자를 사용하여 파일을 생성하는 것도 가능합니다.

여러 사용자 이름과 그룹 이름이 각각 동일한 사용자 및 그룹 ID와 연관될 수도 있습니다. 매핑은 전단사적일 필요가 없습니다. 따라서 권한 등은 사용자/그룹 식별자 측면에서 정의될 수 있으며 이러한 식별자에는 0개 이상의 이름이 연결될 수 있습니다.

관련 정보