/lib64/ld-linux-x86-64.so.2은 (는) 무엇이며 왜 파일을 실행하는 데 사용될 수 있습니까?


17

최근에 파일에 실행 권한이 없으면을 사용하여 해당 파일을 실행할 수 있다는 트릭을 배웠습니다 /lib64/ld-linux-x86-64.so.2.

예를 들어, 다음에 대한 x 권한을 복원하려면

-rw-r--r-- 1 root root 59K Mar  1  2017 /bin/chmod

우리는 달릴 수있다

/lib64/ld-linux-x86-64.so.2 /bin/chmod +x /bin/chmod

나는 그것이 어떻게 이루어질 수 있는지 잘 모르겠습니다. 그것은 일반적인 것들이 아니며 일종의 미스터리입니다.

답변:


18

이것이 동적 링커입니다. 자체적으로 실행하면 수행하는 작업을 알려줍니다.

용법: ld.so [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...]

공유 라이브러리 실행 파일을위한 헬퍼 프로그램 인 'ld.so'를 호출했습니다. 이 프로그램은 일반적으로 file /lib/ld.so에 존재하며 ELF 공유 라이브러리를 사용하는 실행 파일의 특수 지시문은 시스템의 프로그램 로더에게이 파일에서 헬퍼 프로그램을로드하도록 지시합니다. 이 헬퍼 프로그램은 프로그램 실행 파일에 필요한 공유 라이브러리를로드하고 실행할 프로그램을 준비한 후 실행합니다. 명령 행에서이 헬퍼 프로그램을 직접 호출하여 ELF 실행 파일을로드하고 실행할 수 있습니다. 이것은 파일 자체를 실행하는 것과 비슷하지만 실행 파일에 지정된 도우미 프로그램 파일 대신 항상 지정한 파일에서이 도우미 프로그램을 사용합니다. 이것은 유지 보수자가이 도우미 프로그램의 새 버전을 테스트하는 데 주로 사용됩니다. 이 프로그램을 실행하지 않았을 가능성이 있습니다.

링커는 동적으로 연결된 프로그램을 실행하는 데 사용됩니다. 실행할 때 수동으로했던 것처럼 chmod커널이 효과적으로 실행됩니다 /lib64/ld-linux-x86-64.so.2 chmod. 후자는 chmod바이너리가 실행 가능하지 않더라도 작동합니다 .

우수한 프로그램 실행 방법 : ELF 바이너리 문서 에서 이에 대한 자세한 내용을 확인할 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.