setuid 실행 파일에 대한 환경 설정

setuid 실행 파일에 대한 환경 설정

비트가 활성화된 상태에서 프로그램을 실행할 때 이상한 동작을 관찰했습니다 setuid.

프로그램은 setuid 비트가 설정된 사용자가 소유합니다 foo.bar

사용자가 execbar실행foo

foo동적 라이브러리 중 하나에 액세스할 수 없음을 보고합니다.

문제의 동적 라이브러리는 ld.so.conf일반 검색 경로 외부의 디렉터리 에 있으므로 다음을 통해 LD_LIBRARY_PATH설정 됩니다.execbar

문제는 프로그램을 실행하면 setuid사용자가 설정한 환경이 지워지 는가 execbar입니다.

답변1

아니요, 하지만 동적 링커는 setuid로 실행할 때 일부 환경 변수를 무시합니다. 그렇지 않으면 대상 사용자로 모든 코드를 로드하고 실행하도록 할 수 있습니다. LD_LIBRARY_PATH이는 LD_PRELOAD등에 적용됩니다 . 바라보다ld.so(8).

관련 정보