通过 PHP 脚本执行时,SETUID 不以所有者身份执行脚本

通过 PHP 脚本执行时,SETUID 不以所有者身份执行脚本

我有一个 sh 文件(带有 setuid),我希望特定的 Web 用户能够从端点执行该文件:

-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 都以用户身份运行www-data,但是,我尝试将 SETUID 添加到脚本中,以便在执行文件时,文件的所有者用于执行脚本。我引用这个错误吗?该sudo软件包未安装。

错误:<class 'PermissionError'>,[Errno 13] 权限被拒绝:文件:/usr/lib/python3/dist-packages/supervisor/xmlrpc.py 行:557

相关内容