Для каждой операции ядро выбирает процессу одну тройку и смотрит только в неё. Порядок выбора объясняет отказ владельцу.
Выбор идёт по порядку. UID процесса совпал с владельцем файла — действует тройка владельца. Не совпал, но группа файла есть среди групп процесса — тройка группы. Иначе — тройка остальных. Права троек не складываются: нашлась своя тройка — остальные две ядро не смотрит.
Отчёт принадлежал student, и твоей cat досталась тройка владельца ---. Буква r в строке была, но в чужой тройке. www-data не владелец и не в группе student, поэтому для него действовала тройка остальных, r--.
Следующий файл, team.txt, принадлежит root, а его группа — student. Это твоя основная группа, её показывает id.
Файл группы student
Ты в /srv/permissions-lab. Посмотри строку team.txt, прочитай файл сам и от имени www-data.
Сначала предположи
Строка team.txt — -rw-r----- 1 root student. Что напечатает твоя cat team.txt?
Теперь начни упражнение, выполни команду и сверь прогноз с выводом.