Откуда мы знаем, что каталог доступен для записи apache?

21

Мне сказали, что я должен создать папку с изображениями и папку с ресурсами, и мне нужно было убедиться, что: «они доступны для записи apache». Мне также сказали сделать каталог app / runtime доступным для веб-записи. Это так же, как Apache для записи? Если так:

Как я могу сделать это сразу или узнать это?

Делать ls -lя получаю что - то вроде:

drwxr-xr-x 13 user user 4096 2011-08-26 10:23 app
drwxr-xr-x 4 user user 4096 2011-08-26 10:23 runtime
drwxr-xr-x 2 user user 4096 2011-08-26 11:11 images
drwxr-xr-x 2 user user 4096 2011-08-26 11:12 assets
MEM
источник

Ответы:

24

Apache, это программа, работающая в фоновом режиме. Apache изначально запускается пользователем root(также называется root-process). Это root-processзапускает несколько дочерних процессов, которые обрабатывают клиентские запросы. По соображениям безопасности дочерние процессы запускаются не пользователем, rootа пользователем с минимальными правами. Обычно этот пользователь называется apacheили www-data.

Чтобы узнать, что это за пользователь Apache v1:

ps -ef | grep httpd | grep -v grep

или для apache v2:

ps -ef | grep apache | grep -v grep

Результат для apache 2 будет примерно таким:

root 5001 1 0 07:21? 00:00:00 / usr / sbin / apache2 -k start
www-data 5021 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k start
www-data 5022 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k start
www-data 5023 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k start

В этом случае пользователь / группа www-data

Таким образом, чтобы сделать каталог доступным для записи веб-сервером, мы должны установить владельца или группу каталога на владельца или группу Apache и включить для него разрешение на запись. Обычно мы устанавливаем каталог как принадлежащий группе Apache ( apacheили `www-data или любой другой пользователь, используемый для запуска дочерних процессов) и включаем разрешение на запись для группы.

chgrp www-data /path/to/mydir
chmod g+w /path/to/mydir

( www-dataэто имя, которое вы нашли с помощью psкоманды выше).

Что касается:

2) Мне также сказали сделать каталог app / runtime доступным для веб-записи. Это так же, как Apache для записи?

Да, это каталог, который вам нужно установить для записи для группы, которую ожидает Apache. Вероятно, это будет где-то в /var/www/или он установлен в качестве виртуального хоста в /etc/apache2/sites-enabled/и / или/etc/apache2/sites-available

Rinzwind
источник
Большое спасибо. Есть ли способ создать каталог с помощью mkdir и в то же время дать эти разрешения?
MEM
Правда ли, что мы также можем сделать: chmod -R o + w / или / path / здесь? (опция -R явно). ?
MEM
Да 1 метод будет:mkdir dirname && chgrp www-data dirname
Rinzwind
@ МЕМ да. Rсделает все директоры, откуда вы выдадите команду. Есть много способов сделать это;)
Rinzwind
2
ps -ef | grep [a]pacheэто распространенная идиома, позволяющая избежать появления ложных grepстрок в выходных данных.
энзотиб