2010-11-24 4 views
1

정상적인 방법으로 정상적으로 실행되는 실행 파일이 있습니다. 공유 라이브러리를로드합니다. 그 exe를 시작하기 전에 LIBPATH를 설정합니다. 지금 exe의 권한을 루트가 소유하고 스티키 비트를 설정하도록 변경하면 공유 라이브러리를로드하지 못합니다. 공유 라이브러리에/usr/lib에 링크를 만들면 모든 것이 잘 동작합니다.AIX LIBPATH 및 STICKY BIT 설정

이 문제에 대한 모든 이유와 해결책.

답변

5

사용자 환경의 LIBPATH은 스티키 비트가 설정된 항목을 실행할 때 보안 기능이 아닙니다. suid가 설정된 실행 파일에 사용자 집합 LIBPATH을 사용하도록 허용 한 경우 누군가가 악의적 인 라이브러리를로드하여 시스템을 손상시킬 수 있습니다.

또한이 보안 기능은 리눅스 시스템에서도 존재합니다. 사용자 환경의 LD_LIBRARY_PATH은 스티키 비트 실행 파일을 실행할 때 무시됩니다.

가능한 해결책

1 - 한 가지 해결책은 ... 당신이 뭔가를 할 수있는 경우에 그 명령을 실행하는 사용자에게 sudo 권한을 부여하는

sudo LIBPATH="..." executable

2 - 또 다른 해결책은 LIBPATH을 설정하고 쉘 스크립트에서 스티키 비트를 설정하는 셸 스크립트를 만드는 것입니다. 예를 들면 다음과 같습니다.

#/bin/sh 

LIBPATH="/whatever/path" /path/to/executable 
+0

이 작업을 수행 할 수있는 해결 방법이나 옵션이 있습니까? – Avinash

+0

@Avinash - 내 새 편집을 확인하십시오. – birryree