Войти
ПрограммированиеФорумВеб

Запись файла в папку chmod 0755

Страницы: 1 2 Следующая »
#0
14:31, 14 июня 2015

Привет всем. Нужно загрузить файл в папку, закрытую для записи, файл постится с формы, переводится в base64, затем file_put_contents в файл в папке закрытой для записи. Сам скрипт находится на том же файле, что и форма и через редирект обратно на себя попадает и пхп свое дело делает. В 777 папку он пишет без проблем. chmod самого файла на 777 в скрипте перед записью не помогает, видимо, раз у него нет прав записать, то и изменить допуск ему нельзя, он не владелец ни файла, ни директории. Поможет ли помещение кода на отдельный файл? В таком случае он будет запускаться самим сервером, может у него будет больше прав? Что посоветуете? 777 оставлять папку не хочу, убрать выше по директории не могу, такой сервер, есть папка рут и только вниз можно создавать, а саму папку видно в js скрипте, оттуда аяксом файл грузится. 


#1
12:58, 15 июня 2015

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

#2
17:40, 15 июня 2015

А что значит пользователь, который запускает сервер? Я владелец папок и файлов, c панели управления нигде больше ничего не добавляется, я могу только выставить с панели chmod для файлов и для папок. Какие-то скрипты запускает пользователь, т.е. они на странице, доступной пользователю, некоторые с функциями запускает сервер, напрямую недоступны или инклудятся к странице, но тоже сами по себе не выполняются. Допустим, есть какой-то мой "login" - владелец. Можно им как-то оперировать в скрипте, чтобы прав ему дать?

#3
18:58, 15 июня 2015

__sergey
от чьего имени скрипт запускается тому и давай права
p.s. подсказка: chown

#4
18:51, 16 июня 2015

Хорошо, я владелец скрипта. От чьего имени он запускается не очень понятно. Допустим, пользователем. Скрипт не может записать в файл. На кого я изменю владельца в chown, я знаю только свой логин?

#5
21:14, 16 июня 2015

__sergey

Запусти свой сервер и посмотри htop'ом (или ps -eo user,group,args) какой пользователь его запускает.

#6
23:19, 16 июня 2015
вообще по уровню понимания, ТС уверен что ему все это в принципе нужно?
#7
8:42, 17 июня 2015

cNoNim а что такого, сейчас не понимаю, разберусь. По теме нечего сказать - мимо проходи.

#8
8:57, 17 июня 2015

Ghost2  Это как бы хостинг бесплатный, от меня там лежат скрипты. Больше я инструментов никаких особо не имею, кроме панели.

#9
10:18, 17 июня 2015

Скрипты обычно запускаются от имени пользователя под которым работает веб-сервер (т.к. он их запускает). www или apache - посмотри в атрибутах файла записанного с нуля в папку с 777 кто его владелец.
Желание записать в папку к которой нет доступа конечно похвально, но бредово изначально. Не для того права доступа тащем то делали, не?
Так что надо выяснять зачем и для кого закрыта запись и так далее. Что то тут не то.

#10
10:21, 17 июня 2015

А ну если 0755, то сделать пользователя под которым веб-сервер работает владельцем папки и должно прокатить.

#11
11:03, 17 июня 2015

__sergey
Ты на этом хостинге вообще файлы создавать можешь?

#12
11:21, 17 июня 2015

Если веб-сервер на апаче, то вроде по умолчанию у него пользователь www-data. Вот для того кто у тебя веб сервером работает и раздавай права.

#13
12:39, 17 июня 2015

cNoNim могу. Если расшарю с панели папку до 777, то все пишется. Но хотел бы такие права только на время записи файла ставить и не с панели, я же не буду на сервер логиниться каждый раз, а потом возвращать в 755, опять же в самом скрипте.

           $file = fopen($upload_path, "w");  
         chmod($upload_path, 0777);  
         file_put_contents($upload_path , $image_base64);
         fclose($file);
         chmod($upload_path, 0755);
Как-нибудь так, но это не работает, если папка, в которой файл не установлена мной с панели заранее в 777. Пробовал еще и для самой папки менять значение chmod -ом в скрипте, тоже нет. Может сам скрипт не обладает правами менять значения. Вот я и хотел как-нибудь ему владение давать на время. Для всех вообще файлов я владелец и никаких инструментов, чтобы как-то владельцев добавлять или менять не нашел, хотя права можно выставлять в полном диапазоне и для групп и для всех, как угодно. Или может есть другие идеи, как загрузить файл. Как уже написал, двинуть выше по директории папку не могу и ее видно. Сама директория, где она находится не индексируется, там index.php есть, но в javascript  ее путь прописан, при желании можно посмотреть и зайти, поэтому 777 оставлять не хочу. Или ничего страшного? Просто везде как бы не рекомендуют.

#14
12:48, 17 июня 2015

__sergey

фтп доступ есть? в любом вменяемом фтп-клиенте есть и просмотр и смена прав/владельца.

Страницы: 1 2 Следующая »
ПрограммированиеФорумВеб

Тема в архиве.