Как разрешить /var/www права на копирование/запись запрещены?

Я новичок в php, mysql. Я написал hello.php script, который я пытаюсь скопировать в каталог /var/www (и позже захочет открыть его через веб-браузер). Проблема с тем же заключается в том, что мне не разрешено сохранять/записывать любые файлы в /var/www, несмотря на то, что я являюсь корнем. Я попытался выполнить шаги в этом вопросе, но я получаю следующую ошибку при обработке третьей строки

find /var/www/ -type f -exec chmod g+w '{}' ';'
chmod: changing permissions of `/var/www/index.html': Operation not permitted

Я знаю, что symlink также является опцией. Я хотел бы иметь возможность писать/копировать файлы непосредственно в каталог /var/www/.

Любые предложения о том, что происходит не так?

Ответы

Ответ 1

использовать разрешения * unix, получить root acces, например, набрав

sudo su
[then type your password]

и попытайтесь сделать то, что вам нужно сделать

Ответ 2

Вы находитесь в развитой среде? почему просто не делать

chown -R user.group /var/www

чтобы вы могли писать со своим пользователем.

Ответ 3

Выполните следующую команду

sudo setfacl -R -m u:<user_name>:rwx /var/www

Он изменит права доступа к каталогу html, чтобы вы могли загружать, загружать и удалять файлы или каталоги

Ответ 4

У вас есть файл в /var/www с именем hello.php, у которого есть разрешения на него? Может быть, система не может заменить файл?

Хотя, root-доступ должен заменять любого пользователя в системе.

Вы пытались применить разрешения к папке www?

Если вы можете это сделать, попробуйте следующее:

sudo chmod -R 777 /var/www

то do:

sudo cp hello.php /var/www

Я рекомендую это делать, если вы знаете 100%, что нормально устанавливать разрешения для всей папки www. По его словам, вы работаете на своем собственном производственном сервере, так как большинство серверов live/shared hosting настроены так, что папка www не находится в папке /var (вместо этого она находится в домашней папке пользователя).

Будьте ОЧЕНЬ осторожны, когда что-либо делаете с префиксом sudo, вы можете серьезно повредить свою систему, если вы сделаете это неправильно.

Ответ 5

Сегодня столкнулась с аналогичной проблемой. Не видел, чтобы мое исправление было перечислено здесь, поэтому я думал, что поделюсь.

Корень не смог стереть файл.

Я сделал свое исследование. Оказывается там что-то, называемое неизменяемым.

# lsattr /path/file
----i-------- /path/file
#

Этот сконфигурированный бит предотвращает изменение/удаление его даже root.

Чтобы удалить это, я сделал:

# chattr -i /path/file

После этого я мог бы создать файл.

В обратном случае, это аккуратный трюк, чтобы узнать, есть ли у вас что-то, чего вы хотите избежать.

:)

Ответ 6

Во-первых, это не имеет никакого отношения к php. Это проблема разрешения unix. Вам необходимо войти в систему как суперпользователь (sudo/su) и ввести пароль, а затем попробовать эту команду.

$ su
(type password )
\# your command

$ sudo command
$ (type password)

Это может также помочь, если вы действительно указали используемую вами операционную систему.

Ответ 7

sudo cp hello.php /var/www/

Какой результат вы получаете?

Ответ 9

Прежде всего, вам нужно войти в систему как root, а затем перейти в каталог /etc и выполнить некоторые команды, которые приведены ниже.

[[email protected]~]# cd /etc
[[email protected] /etc]# vi sudoers

и введите эту строку в конце

kundan ALL=NOPASSWD: ALL

где kundan является именем пользователя, а затем сохраняет его. а затем попробуйте передать файл и добавьте sudo в качестве префикса для команды, которую вы хотите выполнить:

sudo cp hello.txt /home/rahul/program/

где rahul является вторым пользователем на одном сервере.

Ответ 10

Вам просто нужно написать sudo вместо su.

Затем просто скопируйте файл PHP в var/www/ directory.

Затем перейдите в браузер и напишите локальный host/test.php или что-то вроде имени файла .php.