PHP 스크립트를 통해 실행될 때 SETUID는 스크립트를 소유자로 실행하지 않습니다.

PHP 스크립트를 통해 실행될 때 SETUID는 스크립트를 소유자로 실행하지 않습니다.

특정 웹 사용자가 엔드포인트에서 실행할 수 있도록 하는 sh 파일(setuid 포함)이 있습니다.

-rwsr-xr-x   1 root root       59 Sep 11 09:47 restart-workers.sh

파일의 내용은 간단합니다.

#!/bin/bash
/usr/bin/supervisorctl restart laravel-worker:*

내가 이것을 호출할 때:

exec('/var/www/html/restart-workers.sh', $stdout, $status);

권한 거부 오류가 계속 발생하고 PHP-FPM과 Nginx를 모두 user 로 실행하고 싶지만 www-data파일이 실행될 때 파일 소유자가 스크립트를 실행하도록 SETUID를 스크립트에 추가하려고 했습니다. . 내가 이것을 잘못 인용하고 있는 걸까요? 패키지 sudo가 설치되지 않았습니다.

오류: <class 'PermissionError'>, [Errno 13] 권한 거부됨: 파일: /usr/lib/python3/dist-packages/supervisor/xmlrpc.py 줄: 557

관련 정보