많은 권한(여러 디렉터리 읽기 및 쓰기)을 가진 사용자 apache에서 실행되는 apache가 있습니다. 이제 일부 사용자가 웹 양식을 통해 프로그램/스크립트를 업로드하고 exec()
파일 업로드 PHP 페이지의 PHP 기능을 사용하여 실행하기를 원합니다. 그러나 나는 이 프로그램이 하드 드라이브에 어떤 것도 쓸 수 있는 것을 원하지 않습니다. 이 프로그램이 나에게 필요한 기능을 수행하는 것 같지만 sudo
어떻게 사용하는지 모르겠습니다.
간단히 말해서: 강력한 사용자가 읽기 전용 모드로 프로그램과 스크립트를 실행하는 방법은 무엇입니까?
중요한 경우 내 시스템은 Centos 6입니다.
답변1
맞습니다. 읽기 권한은 있지만 쓰기 권한은 없는 사용자의 sudo는 권한을 부여한 파일에 대한 쓰기 권한만 있는 것처럼 명령을 실행합니다.
sudo -u some_user cmdname
임의의 사용자 업로드 프로그램을 실행하려면 극도의 보안 예방조치가 필요합니다.. 불행하게도 로컬 루트 취약점은 Linux에서 흔히 발생합니다. 사용자가 일종의 감옥/격리(가상 머신이 아닌 경우) 없이 업로드된 프로그램을 실행하도록 하는 것은 현명하지 않습니다.
nobody
업로드된 프로그램이 패치되지 않은 루트 취약점을 악용하여 권한을 0에서 1로 승격하더라도 최소한 여전히 안전하도록 시스템을 구축해야 합니다 root
.