CentOS 7 Apache 루트 사용자로 웹 요청 실행/실행

CentOS 7 Apache 루트 사용자로 웹 요청 실행/실행

파일을 매개변수로 사용하여 게시 요청을 허용하는 PHP 유틸리티가 있습니다. 이제 해당 요청이 수신되면 루트 사용자로 실행하고 싶습니다. 예를 들어 사용자가 postman이나 다른 도구에서 www.mydomain.com/sendtextfiletoftp.php를 조회하면 루트 사용자로 실행되어야 합니다.

sudoers 파일에 아래 줄을 추가하는 데 지쳤지만 sudo visudo여전히 요청은 Apache 사용자로 실행됩니다.

www-data ALL=NOPASSWD: /var/www/html/sendtextfiletoftp.php

apache ALL=NOPASSWD: /var/www/html/sendtextfiletoftp.php

명령줄( )에서 sudo 사용자로 실행하면 동일한 파일이 sudo php72 /path/to/file/sendtextfiletoftp.php정상적으로 작동합니다.

도와 주셔서 감사합니다.

답변1

Apache 사용자가 명령의 루트가 되도록 허용하는 것 외에도 'sudo'가 포함된 코드 내에서 호출을 수행해야 합니다. 일반적으로:

Visudo에서 나는 다음과 같은 것을 넣을 것입니다

아파치 ALL=NOPASSWD: /path/my_root_command

내 /var/www/html/sendtextfiletoftp.php 코드에서 루트 액세스가 필요한 특정 부분에 대해 다음과 같이 입력합니다.

exec("sudo /path/my_root_command");

관련 정보