이것은 내가하고 싶은 것의 상상의 예입니다. 문자 그대로 받아들이지 마라.제한된 권한으로 라이브러리 나 프로세스를로드 할 수 있습니까?
내 프로세스가 www-data로 실행 중이며 thedevil.lua라는 lua 스크립트가 있다고 가정 해 보겠습니다. 삭제, 손상 및 가능한 한 많은 문제를 일으킬 것입니다. 루아 인터프리터가있는 프로세스 (또는 공유 객체로드)를 실행하고 사용자가 www- 데이터이므로 모든 웹 사이트를 망칠려고합니다.
제한된 권한으로이 프로세스를 만들거나 라이브러리를로드 할 수있는 방법이 있습니까? 스크립트가 /var/www/devilscript/thedevil.lua
에 있다고 가정 해 보겠습니다. /tmp/www/devilscript
및 /var/www/devilscript/
에 대한 권한을 부여하고 싶습니다. 그게 가능하니? devilscript라는 새로운 사용자를 만들고 그 사용자로 프로세스를 실행하는 것보다 제한된 권한을 부여하고 싶지 않습니다. 나는 단지 www- 데이터라고 말하고 싶지만,이 프로세스/lib에 내가 할 수있는 것의 부분 집합만을주고 싶다.
-edit- 낮은 권한으로 말한 so 또는 binary를 실행하는 함수의 이름을 알려 주시겠습니까?
-edit2- 내가 질문 한 것처럼 창문을 쓸 수 있습니까?
저는 C++을 사용하고 있습니다 만, C 메소드의 이름을 나에게 줄 수 있습니까? 공유 라이브러리 현명한 나는 단지 dlopen을 보았고 그 옵션을 가지고 있지 않았다. 내가 현명하게 처리 한 것은 아직 보지 못했습니다. –
불행하게도, 정확한 OS와 사용중인 OS의 버전에 따라 달라지며, 심지어 관련 방법이 불쾌하게 복잡해집니다. 이것은 제가 두려워하는 매뉴얼을 요구할 것입니다. 위에서 언급 한 목록에서 OS를 발견 할 수 있다면 해당 특정 OS에 대한 설명서를 찾으십시오. 예를 들어 Linux에서는 SELinux 또는 Apparmor를 지원하는지 시스템에 도움이되는지 확인할 수 있습니다. – Perry
arg. 나는 chroot (아직까지는 havent) 또는 bc가 수천이 될 수도 있고 (동적으로 만들어진) 프로젝트 이름을 바꿀 수도있다. 이 exe를 가상 사용자 또는 me-but-limited로 실행하는 것이 쉽습니다. -edit- 나는 데비안을 사용하고 있지만 리눅스가 기본적으로이 작업을 수행하기를 희망했다. –