sudo 없이 루트 소유 바이너리 실행

sudo 없이 루트 소유 바이너리 실행

인터뷰 도중 다음과 같은 질문을 받았습니다.

user1권한 이 없고 계정 sudo에 접근할 수 없는 사용자를 이용하여 프로그램을 실행(실행)하는 방법은 다음과 같습니다 .root

$ whoami
user1
$ ls -l ~/binary_program
-rw-r--r-- 1 root root 126160 Jan 17 18:57 /home/user1/binary_program

답변1

리눅스를 사용할 수 있습니다동적 링커/로더직접 실행ELF 실행 파일귀하는 다음 내용을 읽었으나 실행할 권한이 없습니다.

$ /lib/ld-linux.so.* /home/user1/binary_program

ELF 실행 파일이 정상적으로 실행될 때 .interp프로그램 코드 세그먼트에 저장된 동적 링커가 사용됩니다. 동적 링커를 직접 호출하는 이유(취업 면접 외부)에는 동작을 수정하기 위해 명령줄 옵션을 전달하는 것이 포함됩니다.

동적 링커의 실제 위치는 환경에 따라 크게 달라질 수 있습니다. 예를 들어 64비트 Ubuntu에서는 링커가 /lib64/ld-linux-x86-64.so.2.

답변2

라이센스를 읽었으므로:

$ cp ~/binary_program my_binary
$ chmod +x my_binary
$ ./my_binary

물론 이것이 자동으로 마법처럼 업그레이드 권한을 부여하는 것은 아닙니다. 일반 사용자로서 바이너리를 계속 실행하게 됩니다.

관련 정보