그래서 한번 시도해 보려고 했습니다 setuid
. 내 이해에 따르면 사용자는 소유자의 컨텍스트에서 바이너리를 실행할 수 있습니다. 그래서 저는 /root
"루트" 사용자만 실행할 수 있는 디렉터리에 쓰기 작업을 수행하는 프로그램을 C로 작성했습니다 . 이를 컴파일하고 생성된 바이너리의 소유자를 "루트"로 변경하고 setuid
다음을 사용하여 권한을 추가했습니다.
$ chmod u+s binary_generated
파일 권한은 다음과 같습니다
-rwsrwxr-x 1 root root 21112 Jun 29 11:26 binary_generated
/root
이제 일반 사용자는 루트 사용자 컨텍스트를 사용하여 이 바이너리를 실행할 수 있어야 하며 디렉터리 에 쓸 수 있어야 합니다 . 하지만 여전히 Permission Denied
오류가 발생합니다.
[!!] Fatal Error in main() while opening file: Permission denied
저는 Pop!_Os 20.04와 Linux 5.4.0-7634-generic을 사용하고 있습니다.
제 생각엔 OS의 커널이나 보안 기능과 관련이 있는 것 같아요.