(참고 : 아래의 바이너리 및 바이너리 및 라이브러리 이름은 무해한 사용자를 보호하기 위해 난독 화됩니다.) 앱은 NDA 하에서 독점적이지만 행동은 하지에 의존)리눅스 바이너리는 공유 라이브러리를 찾을 수 없지만 strace에서 실행 중일 때 작동합니다
을 나는 다음과 같은 오류를 인쇄하는 리눅스 바이너리 실행 한 때.
진 : 오류가 공유 라이브러리를로드하는 동안 : libshared.so : 공유 열 수 없습니다 오브젝트 파일 : 해당 파일 또는 디렉토리
libshared.so가 LD_LIBRARY_PATH에 있기 때문에 혼란 스럽습니다. strace binary
을 실행할 때 프로그램이 인쇄를 관리하도록 라이브러리가 제대로 발견 ldd binary
(즉, LDD 출력 파일 위치를 점)
을 실행하는 경우에는,
- 는 라이브러리가 제대로 발견 그것의 사용법 정보!
strace에서 자체 vs에서 실행될 때 다르게 동작하는 응용 프로그램을 본 적이 없지만 다른 사람이 전에이 문제가 발생했을 가능성이 있습니까? 어떤 아이디어가 이것을 해결하는 방법?
소스가 없으므로 다시 작성할 수 없습니다. strace에서 프로덕션 환경에서 앱을 실행하는 것은 아마도 비 스타터입니다. OS는 RHEL 6.2입니다.
흥미 롭습니다! 이것이 원래의 문제인지 다시 추적 할 것입니다. 호기심에서 SUID/LD_LIBRARY_PATH 변경에 대한 참조가 있습니까? – ajdecon
예 - "man ld.so": ** 환경 변수 LD_LIBRARY_PATH 사용. 실행 파일이 set-user-ID/set-group-ID 바이너리 인 경우를 제외하고는 무시됩니다. ** –
고마워요! 나에게 많은 시간을 (그리고 나의 성실 :) 저장했다) – Will