![setuid 프로그램에서 mount(1)을 실행할 수 없습니까?](https://linux55.com/image/207976/setuid%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%97%90%EC%84%9C%20mount(1)%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
일반적으로 읽기 전용 디스크에 쓸 수 있도록 다시 마운트해야 하는 setuid 프로그램이 있습니다. 즉, 프로그램이 명령을 실행하려고 합니다.
mount -o remount,rw /
그러나 mount
명령 자체는 루트에 의해 실행되는지 확인하는 setuid입니다.진짜사용자 ID이므로 setuid 프로그램에서 실행하면 "루트만 재설치 옵션을 사용할 수 있습니다" 또는 이와 유사한 오류가 발생하여 실패합니다.
setuid 프로그램이 commnd를 실행할 방법이 정말 없나요 mount
?
답변1
질문을 게시하자마자 답변을 찾았습니다. 간단한 통화
setuid(geteuid())
직전 exec()
에 /bin/mount
이루어졌습니다 .