Как запретить пользователю доступ к другому файлу пользователя в php-fpm и nginx, как это делает suphp
Я использую Nginx и PHP-FPM и у меня много пользователей, у каждого пользователя есть свое имя и группа, но я вижу, что все php execeutes запускаются как id, uid, gid nobody, также я знаю, что в php-fpm.conf есть пользователь и групповой конфиг как никто
Я пытаюсь использовать бассейн, но не повезло
[website.com]
user = user1
group = user1
listen = /var/run/php5-fpm-user1.sock
listen.owner = user1
listen.group = user1
;listen.mode = 0666
pm = ondemand
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
но также Evey PHP работает как nobody
из php shell показано (даже из user1)
uid=99(nobody) gid=99(nobody) groups=99(nobody)
ps -aux | grep nginx
root 11736 0.0 0.0 964508 2120 ? Ss 13:14 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
root 11737 0.0 0.0 967460 4012 ? S 13:14 0:00 nginx: worker process
root 11738 0.1 0.0 970668 5316 ? S 13:14 0:01 nginx: worker process
root 11739 0.0 0.0 967588 4000 ? S 13:14 0:00 nginx: worker process
root 11741 0.0 0.0 967464 4604 ? S 13:14 0:00 nginx: worker process
root 11742 0.0 0.0 966428 3448 ? S 13:14 0:00 nginx: worker process
root 11744 0.0 0.0 966428 3648 ? S 13:14 0:00 nginx: worker process
root 11745 0.0 0.0 966428 3520 ? S 13:14 0:00 nginx: worker process
root 11746 0.0 0.0 966428 3484 ? S 13:14 0:00 nginx: worker process
root 11749 0.0 0.0 964672 2412 ? S 13:14 0:00 nginx: cache manager process
ps -aux| grep php (for all another user expect user1)
root 11760 0.0 0.0 1232104 6512 ? Ss 13:14 0:00 php-fpm: master process (/etc/php/php-fpm.conf)
nobody 13568 7.3 0.6 1307036 107936 ? S 13:21 0:41 php-fpm: pool www
nobody 13627 7.6 0.6 1306808 111000 ? S 13:22 0:37 php-fpm: pool www
nobody 13628 7.4 0.6 1291900 99348 ? S 13:22 0:36 php-fpm: pool www
nobody 13629 7.0 0.6 1306748 109308 ? S 13:22 0:33 php-fpm: pool www
ps -aux| grep user1
gerges 15586 7.0 0.0 1231908 13464 ? S 13:32 0:00 php-fpm: pool san-gerges.com
из PHP-оболочки от user1
uid=99(nobody) gid=99(nobody) groups=99(nobody)
Проблема в том, что я могу легко получить доступ к файлам других пользователей, если для папки установлено разрешение 755, и я могу прочитать содержимое файла. Единственный способ избежать этого состоит в том, что я изменяю все папки в 711, но это не поддерживается некоторыми сценариями
Есть ли в любом случае запретить любому пользователю доступ к другому пользовательскому файлу и запускать скрипт как его владелец, используя php-fpm и nginx, как то, что SuPHP делает точно.
0 ответов
Обычно вы делаете комбинацию привязки пользователя php-fpm с ограничением PHP open_basedir для блокировки пользователей в их собственном каталоге, то есть:
/etc/php.ini
open_basedir = /home/username