2016-06-16 3 views
0

c/C++ 코드에서 Linux 사용자 런타임을 변경하고 싶습니다. 내가 어떻게 할 수 있니?c/C++ 코드에서 Linux 사용자 런타임을 변경하십시오.

리눅스 사용자 "abc"(비 루트 사용자)로부터 c/C++ 바이너리를 실행하고 있습니다. c/C++ 코드 내에서 특정 작업을 수행하기 위해 "xyz"라는 사용자로 전환 한 다음 "abc"의 권한을 되찾고 싶습니다.

+0

"같은"?? 같이 ...? –

답변

5

사용자가 root가 아닌 한 사용자 ID를 보안 구멍처럼 임의로 변경할 수 없습니다. 그러나 사용자 ID를 해당 실행 파일을 소유하는 사용자의 사용자 ID로 전환하는 규정이 있습니다 (은 실행 파일입니다). 이것은 setuid() 함수입니다. 이 기능을 사용하려면 프로그램 자체에 setuid 플래그가 설정되어 있어야합니다.

자세한 내용은 herehere을 참조하십시오.

+0

위키피디아는'setgid'에 대해서 언급하고 있지만 강조하기 위해'setgid'를 체크하는 것을 잊지 마십시오. 많은 응용 프로그램에서 그룹 만 변경하면 충분합니다. – Dummy00001

관련 문제