PHP를 통해 루트 명령을 원활하게 실행
루트 명령을 안전하게 실행하는 것은 웹 기반 애플리케이션의 일반적인 요구 사항입니다. 이 기사에서는 제한된 사용자 액세스로 루트 명령을 실행하여 기능 요구 사항을 충족하면서 보안을 강화할 수 있는 솔루션을 자세히 살펴보겠습니다.
초기 접근 방식은 Apache 사용자에게 루트 권한을 부여하는 것이었습니다. 그러나 이는 심각한 보안 위험을 초래하므로 사용하지 않는 것이 좋습니다. 대신, 우리는 보다 안전한 대안을 채택할 것입니다.
우리의 솔루션은 원하는 명령을 루트로 실행할 바이너리 래퍼를 만드는 것입니다. 이를 설정하기 위한 단계별 가이드는 다음과 같습니다.
루트 명령으로 스크립트 만들기:
다음을 포함하는 스크립트 만들기 실행해야 하는 루트 명령. 예를 들어 SSHD 서비스를 다시 시작하려면 다음 콘텐츠로 php_shell.sh라는 스크립트를 생성하세요.
#!/bin/sh /sbin/service sshd restart
보안 스크립트 권한:
php_shell.sh의 소유자를 루트로 설정하고 루트 사용자에게만 쓰기 권한을 부여합니다.
chown root php_shell.sh chmod u=rwx,go=xr php_shell.sh
바이너리 래퍼 만들기:
이 바이너리는 루트 권한으로 php_shell.sh를 실행합니다. 다음 코드를 사용하여 Wrapper.c 파일을 만듭니다.
#include <stdlib.h> #include <sys/types.h> #include <unistd.h> int main (int argc, char *argv[]) { setuid (0); system ("/bin/sh /path/to/php_shell.sh"); return 0; }
컴파일 및 권한 설정:
wrapper.c 파일을 컴파일하고 suid 비트를 포함하여 올바른 권한을 설정하십시오.
gcc wrapper.c -o php_root chown root php_root chmod u=rwx,go=xr,+s php_root
이 단계를 수행하면 php_shell에 지정된 루트 명령을 실행할 수 있는 바이너리 래퍼(php_root)가 생성됩니다. 쉿. 이는 시스템 보안을 손상시키지 않고 PHP 애플리케이션에서 루트 명령을 실행하는 안전한 방법을 제공합니다.
위 내용은 PHP 애플리케이션에서 루트 명령을 안전하게 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!