Изменение прав доступа к файлам из скрипта

Alexandre

PHPПенсионер
Изменение прав доступа к файлам из скрипта

Проблема в следующем:
Мой скрипт формирует HTML шаблон и должен записать его в файловую систему. Все отлажено и без проблем работает в PHP под Win, но на хостинге установлены права доступа:755.

Но установлены права доступа к файлам 755, соответственно при выполнении функции fopen() происходит ошибка... access denied.

могу я средствами php (например командой system или exec ) задать права доступа 777, а по исполнению скрипта вернуть в 755.

PS - я не знаю юникса (все собираюсь заняться изучением), по этому попрошу пояснять форматы юниксовых команд.

Вопрос 2: Если я устанавливаю для директории права 777 (или иные другие), значит ли это что для всех новых файлов директории устанавливаются права 777, или это задается какой-то командой по умолчанию.

я изменил в ручную права моей директории с 755 на 777, но ранее созданных файлах остались права 755.

что будет с вновь создаваемыми файлами
 

Alexandre

PHPПенсионер
а если мне необходимо создать файл с правами 777, а стоит 755,
я создаю файл fopen('myname','w'), а потом пишу в него....
если стоит 755, то получается я не смогу создать файл?

Возможен такой выход:
1) можно создать (закачать) пустой файл, дать на него права 777,
2) скопировать его в 'myfile'
3) далее писать в 'myfile'
остается под вопросом, смогу ли я выполнить пункт 2
 

MD

Guest
www.php.net/umask
и почитай все-таки про права в юник-лайк системах ... полезно очень.
 

Alexandre

PHPПенсионер
всем спасибо,
вот такой вопрос: если скрипт создает файл, то кто является его пользователем....

этоя к тому что если у файла прописаны права 711, то его другие скрипты могут не видеть?
 

Alexandre

PHPПенсионер
umask -- Changes the current umask
изменяется маска прав модуля ЛХЛ или текущего файла?
 

Alexandre

PHPПенсионер
установил права на уровни 766 и не могу записать, пример:
PHP:
		$path=$_SERVER["DOCUMENT_ROOT"]."images/news";
		$pathinfo = pathinfo($HTTP_POST_FILES[uploadfile][name] );
		$ext=$pathinfo[extension]; 
					
		  if (is_uploaded_file($HTTP_POST_FILES[uploadfile]['tmp_name']))  {
			if	(!copy($HTTP_POST_FILES[uploadfile]['tmp_name'], $path.$postid.".".$ext))
					{echo 'no copy  <br> ';} 
			}	else {  echo "Possible file upload attack. Filename: " . $HTTP_POST_FILES['userfile']['name'];    }
 

Alexandre

PHPПенсионер
мой скрипт в одну директорию копирует а в другую нет
по идеи если установлены права 766 то должен копировать
 

Alexandre

PHPПенсионер
создал новую директорию, задал права 777
не может туда скопировать файл?
хотя ранее создал также директорию с правами 777 и туда спокойно записывал - в чем возможная причина?
 
Сверху