Я новичок в этом. Итак, я понял, что apache2 запускает процессы как пользователь www-data. Предположим, этот пользователь затем запускает ненадежный код. Что, если бы я хотел запретить этому пользователю читать любые файлы (например, / etc / fstab). Как мне это сделать? Кстати, Ubuntu 11.04.
Есть ли в / etc / fstab секреты, которые пользователи не хотят читать?
В общем, вы бы удалили доступ к файлам для других, но fstab не содержит секретов, поэтому вы просто можете что-то сломать.
В частности, с Apache у вас, вероятно, есть возможность запустить его в chroot, чтобы он не мог читать за пределами / var / www или там, где когда-либо живет ваш httpd.
Вы можете запретить, изменив эти файлы с помощью chmod, чтобы пользователь www-data не мог их прочитать.
Один из приемов, который вы могли бы использовать, - это изменить группу этих файлов на группу www-data и установить мод так, чтобы группа не могла читать файлы.
$ chgrp www-data /etc/fstab
$ chmod g-rwx /etc/fstab
Со стороны php вы можете использовать open_basedir что в некоторых случаях предотвратит чтение файлов за пределами пути, установленного как open_basedir