Сведения о вопросе

FUTER

07:13, 2nd October, 2020

Удалить файл, созданный www-data?

Просмотров: 392   Ответов: 11

Есть пользователь user на сервере, и директория www в его домашней папке. В ней находится PHP-скрипт, который позволяет загружать файлы на сервер.


Владельцем всех файлов, загруженных скриптом становится www-data.

Проблема в том, что удалить, зайдя по ssh эти файлы нельзя (Permission denied) ибо user не имеет прав на операции с файлами www-data.


Так как удалить эти файлы?


ОС- Ubuntu Server 10.04.



  Сведения об ответе

PIRLO

03:18, 29th September, 2020

Просто поставить Apache с MPM, тогда скрипты будут выполняться с правами пользователя, а не апача.


  Сведения об ответе

park

12:14, 30th September, 2020

Удалите его из php-скрипта.


  Сведения об ответе

PROGA

06:33, 26th September, 2020

Так может с группами поиграться? Скажем, принудительно менять группу всем файлам в каталоге юзера или объединить www-data и юзера в одной группе.


  Сведения об ответе

qwerty101

00:40, 29th September, 2020

если у вас есть root доступ, тогда удаляйте
sudo rm file

Как я понимаю что у вас нет такого доступа. тогда выход есть в суппорте или удаление через панель предоставляемую хостером. Например, в cpanel есть файловый менеджер, он должен удалять файлы.

Хотя я в таких случаях ОБЯЗАТЕЛЬНО говорю хостеру что бы мой акккаунт мог удалять файлы которые делают мои сайты и считаю это правильным выходом


  Сведения об ответе

lool

11:09, 27th September, 2020

Можно удалить файлы php-скриптом, либо подправить права на папки/файлы php-скриптом если хватит прав.


  Сведения об ответе

fo_I_K

02:14, 25th September, 2020

<? unlink('/path/filename.ext');?>


  Сведения об ответе

DAAA

13:21, 26th September, 2020

А нефиг пользовать ненастроенный mod_php.
Или в CGI переключайте режим php или нужных пользователей в группу www-data закиньте. Только от упоротых скриптов всё равно не спасёт в группу перекидывание.


  Сведения об ответе

dump

22:50, 26th September, 2020

ACL, и дать юзеру право на равне с www-data орудовать в директории. типа так
setfacl -m /path/to/dir user:username:rwx


  Сведения об ответе

SILA

23:42, 26th September, 2020

Думаю надо сделать так:

1) загруженным файлам даем права rwx rwx r-- группа и пользователь соответственно www-data.
2) добавляем юзера в группу www-data.

Ну или правда что-то с ACL мутить. Можно на каждого юзера отдельный процесс апача запущенного от юзера, но это накладно и настраивать долго…


  Сведения об ответе

qwerty101

20:46, 30th September, 2020

Когда-то настраивал веб-сервер для нескольких пользователей под FreeBSD. Каждый пользователь имел свою папку. Всё, что находилось в папке и сама папка принадлежали этому пользователю, группа была www (от неё работал Apache). Для того, чтобы файлы создаваемые веб-сервером принадлежали пользователю была использована SUIDDIR (chmod 4770). Т.е. ко всем создаваемым файлам от имени www происходила подмена пользователя на того, которому принадлежала папка.
Практически всё работало, кроме одного — не загружались файлы через php. Проблема возникала из-за того, что файл грузился во временную папку и получал права 600. В результате только что загруженный файл php перенести не мог на место назначения.


  Сведения об ответе

COOL

16:41, 25th September, 2020

Сделайте chmod загруженных файлов 666 (не сочтите за злое колдунство :)), и удаляйте как хотите, первая цифра — права владельца на файл, вторая — права группы на файл, третья — права любого пользователя, 6 — право на чтение/запись.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться