Я пытаюсь создать файлы в моей папке / var / www (debian), но эта папка доступна только для чтения. Единственный способ создать файл - это войти в root и создать его в терминале. Тогда мне тоже нужно отредактировать содержимое. Как я могу создавать файлы и папки внутри каталога www или сделать его не доступным только для чтения, но при этом каким-то образом в безопасности. Я не понимаю, как это работает ... спасибо
Вы можете сменить владельца /var/www
своему пользователю или группе, либо создайте подкаталог в /var/www
и дать себе право собственности. Если ваше имя пользователя «Дэвид», то:
david$ su -
root# chown david /var/www
Или:
david$ su -
root# mkdir /var/www/david
root# chown david /var/www/david
Тогда ваш пользователь сможет читать и писать в любом каталоге, владельцем которого вы являетесь.
sudo chown `whoami` /var/www
Это установит владельцем / var / www текущего пользователя, что и является whoami
возвращается.
Вам действительно следует ознакомиться с разрешениями и правами собственности на файлы / каталоги в системах posix, если вы собираетесь поддерживать экземпляр apache.
Возможно, это не лучшая ссылка, но она была первой в Google для "понимания разрешений unix": http://www.perlfect.com/articles/chmod.shtml
Чтобы делать то, что вы хотите, и в то же время не связываться с разрешениями веб-сервера, вы должны добавить себя и пользователя или группу веб-сервера в права собственности на файлы и каталоги.
Вы можете сделать это следующим образом:
1: # chmod -R 775 /var/www/;
2: # chown -R your-user.webserver-group /var/www/
Первая строка дает пользователю и группе разрешения на чтение, запись и выполнение в каталоге веб-сервера.
Вторая строка гарантирует, что вы являетесь пользователем, указанным в строке 1, и что группа веб-сервера находится в группе в каталоге веб-сервера.
Таким образом вы сможете создавать, изменять или удалять файлы и папки в /var/www/
каталог и в то же время веб-сервер может выполнять свои обычные задачи.
Вы можете сделать это, изменив права доступа к папке.
$ chmod 664 myfile / папка
Вы можете сохранить файл в / tmp, а затем использовать функции ftp, такие как ftp_fput () PHP, чтобы переместить временный файл в его надлежащее место. Кажется безумием, когда ftp-сервер «возвращается к самому себе», но файлы в этом случае будут принадлежать пользователю ftp, а не пользователю apache. Не забудьте удалить файл tmp и защитить файл с паролем ftp. us3.php.net/manual/en/function.ftp-fput.php