RELRO 보호기법 공부하는데 컴파일이 왜 다를까요??

System Hacking 강의중 PIE & RELRO 우회 강의 중 RELRO 내용 중 -> gcc 사용시 Full RELRO를 기본으로 한다고 하고, Full RELRO를 적용한 컴파일을 할 때 아무 옵션없이 컴파일 하셨는데

Kali linux에서 똑같이 컴파일 하였을 때 Patial RELRO가 적용되서 GPT에게 물어보니

" Ubuntu 강의 환경에서는 패키지 빌드나 배포판 하드닝 정책 때문에 RELRO + BIND_NOW가 들어간 바이너리를 자주 보게 됨 그래서 checksec에서 Full RELRO가 더 흔하게 보일 수 있음
반면 네 Kali/Debian 계열에서 그냥 gcc file.c 한 건, 지금 확인한 것처럼 -z now가 기본으로 안 붙어서 Partial RELRO가 뜨는 거임"

라는 답변을 받았는데 진짜 kali 환경에서는 gcc에 아무옵션 안 붙이면 Partial RELRO 인지 팩트체크를 좀 하고 싶습니다!

GPT를 아직 그렇게 믿지를 못하다 보니 궁금하네요!

$ cat /etc/os-release
PRETTY_NAME="Kali GNU/Linux Rolling"
NAME="Kali GNU/Linux"
VERSION_ID="2026.1"
VERSION="2026.1"
VERSION_CODENAME=kali-rolling
ID=kali
ID_LIKE=debian
HOME_URL="https://www.kali.org/"
SUPPORT_URL="https://forums.kali.org/"
BUG_REPORT_URL="https://bugs.kali.org/"
ANSI_COLOR="1;31"
$ gcc --version
gcc (Debian 15.2.0-14) 15.2.0
Copyright (C) 2025 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ gcc -o frelro relro.c
$ cs frelro
[*] '/RELRO/frelro'
    Arch:       amd64-64-little
    RELRO:      Partial RELRO
    Stack:      No canary found
    NX:         NX enabled
    PIE:        PIE enabled
    Stripped:   No
작성자 정보
아마도 그냥 실행 환경에 따라서 달라지는것 같습니다 문제에서 제공하는 dockerfile을 build하고 실행해서 컴파일 해보면 아마도 같은 RELRO로 나오지 않을까 싶네요