it-roy-ru.com

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

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

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

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

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

17
shubster

это вопрос * разрешений Unix, получить root-права, например, набрав

Sudo su
[then type your password]

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

16
Lopoc

ты в среде разработки? почему бы просто не сделать

chown -R user.group /var/www

так что вы сможете писать со своим пользователем.

13
Gabriel Sosa

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

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

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

9
Chandra D.P

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

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

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

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

Sudo chmod -R 777 /var/www

затем сделайте:

Sudo cp hello.php /var/www

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

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

7
Tisch

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

Root не может стереть файл.

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

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

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

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

# chattr -i /path/file

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

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

:)

1
user3277597

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

$ su
(type password )
\# your command

$ Sudo command
$ (type password)

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

0
meder omuraliev
Sudo cp hello.php /var/www/

Какой выход вы получаете?

0
phoebus

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

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

Затем перейдите в браузер и напишите локальный Host/test.php или любое другое имя файла .php.

0
arao

Если ничего из вышеперечисленного не работает, возможно, вы имеете дело с файловой системой vfat. Используйте «df» для проверки.

См. http://www.charlesmerriam.com/blog/2009/12/operation-not-permitted-and-the-fat-32-system/ для получения более подробной информации.

0
Charles Merriam

Прежде всего, вам нужно войти в систему как пользователь 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 - второй пользователь на том же сервере.

0
Kundan Kumar Saw