인터뷰 도중 다음과 같은 질문을 받았습니다.
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
물론 이것이 자동으로 마법처럼 업그레이드 권한을 부여하는 것은 아닙니다. 일반 사용자로서 바이너리를 계속 실행하게 됩니다.