2012-10-10 2 views
0

개정 :환경 변수 필터링

환경 변수 필터링은 어디에서 발생합니까? 예를 들어 공유 라이브러리 삽입을 위해 LD_PRELOAD를 사용한다고 가정 해보십시오. 그러나 setuid 프로그램이 실행될 때 LD_PRELOAD 변수는 아무 효과가 없습니다. 내가 "환경 변수 필터링"을 더빙하고있는 사례입니다. 환경 변수의 처리 및 제거가 어디서, 구체적으로 그리고/또는 정확하게 발생하는지 궁금합니다.

+0

많은 예제가 있습니다 (google) –

+0

올바른 방향으로 나를 가리 키십시오. 나는 아무것도 찾지 못했다. – bazz

+0

http://stackoverflow.com/questions/426230/what-is-the-ld-preload-trick –

답변

2

동적 로더는 LD_PRELOAD 및 관련 환경 변수를 다룹니다. 또한 프로그램이 SUID를 실행하는지 여부를 판별하고 환경 변수를 무시합니다.

동적 로더의 실제 이름과 위치는 시스템마다 다릅니다. 예를 들어 x86/64 용 RHEL 5의 경우 라이브러리는 32 비트 소프트웨어의 경우 /lib/ld-linux.so.2이고 64 비트 소프트웨어의 경우 /lib64/ld-linux-x86-64.so.2입니다. SPARC 용 Solaris 10의 경우 32 비트 코드는 /lib/ld.so.1이고 64 비트 코드는 /lib/sparcv9/ld.so.1입니다.

+0

이것을 분명하게 해주셔서 감사합니다. – bazz