Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Права доступа


Автор: Михалыч 6.9.2008, 11:22
На папки хотел поменять права,Скинул папку в корневую,вызываю ее, а выходит вот такая ошибка:
Warning: chmod() [function.chmod]: Operation not permitted in /home/docares/domains/sov.ru/public_html/izmenprav.php on line 4

Код вот такой:
Код

<?php
chmod("components/",0777);
chmod("cache/",0777);
chmod("images/",0777);
?>


Пробовал менять слеши, и точку перед слешем  ставил ,все равно выдает ошибку

Автор: gta4kv 6.9.2008, 12:04
Operation not permitted.

Автор: Михалыч 6.9.2008, 12:46
Это я и так понял что действие не разрешено,я только не понял почему?может из за Windows платформы?

Автор: gta4kv 6.9.2008, 12:50
ага, снимите ручками галку "Read only".
chmod это линуховое понятие smile

Автор: Михалыч 6.9.2008, 14:11
Извините,а можно с этого места поподробней,мне нужно на папку каторая исполняет код поменять права?или я что то не понял

Автор: bars80080 6.9.2008, 15:02
gta4kv, говорит, что винда не способна исполнить эту функцию. можно только руками открывать свойства файла и снимать галочку "только для чтения"

Автор: Михалыч 6.9.2008, 15:58
Если я правильно понял,то функция chmod мне не поможет?

Автор: gta4kv 6.9.2008, 16:32
Михалыч, даааааааааааааааааааа

Автор: Михалыч 6.9.2008, 16:44
Ну а что поможет? Руками много редактировать.....

Автор: MoLeX 6.9.2008, 17:17
Михалыч, езжай на UNIX платформу...

Автор: Mal Hack 6.9.2008, 19:41
Цитата(gta4kv @  6.9.2008,  13:50 Найти цитируемый пост)
chmod это линуховое понятие smile 

Да вы что... В винде это тоже есть, только полностью реализовано на Server платформах.
На обысных Осях вы не получите доступа к настройке write, только read...

Автор: gta4kv 6.9.2008, 20:05
Mal Hack, 
ну а у афтора xp/vista. 100% ><

Автор: skyboy 6.9.2008, 22:17
Цитата(Mal Hack @  6.9.2008,  18:41 Найти цитируемый пост)
На обысных Осях вы не получите доступа к настройке write, только read... 

не понял. ntfs поддерживает ACL. для папки/отдельного файла можно указать права на запись, чтение, удаление, создание, выполнение. или речь именно об особенностях взаимодействия с ОС интерпретатора?

Автор: Mal Hack 6.9.2008, 23:08
Цитата(skyboy @  6.9.2008,  23:17 Найти цитируемый пост)
не понял. ntfs поддерживает ACL. для папки/отдельного файла можно указать права на запись, чтение, удаление, создание, выполнение. или речь именно об особенностях взаимодействия с ОС интерпретатора? 

Поддерживать-то поддерживает. НО... В не серверных системах от MS с помощью chmod устанавливается только read и execute, причем execute, если память не изменяет, определяет фиг знает что... Проверенно собственными опытами, когда писал на PHP файловый менеджер. Под северными ОС права доступа работают как на S5.

Читаем комменты с конца: http://ru2.php.net/manual/ru/function.chmod.php

В частности http://ru2.php.net/manual/ru/function.chmod.php#47350 :
Цитата
Problably you have a local server to simulate your scripts before upload them to the server. No matter if you use Apache under windows or IIS ,  a chmod instruction like chmod($filename,O777) may not work because windows does not handle that kind of permission's format.
 So being in your local server, if you have a only read file and you try to erase, it will show that you dont have permissions even when you have already executed your chmod instrucction correctly. Just up the script it must work well in your internet server if it is a linux machine


И http://ru2.php.net/manual/ru/function.chmod.php#26651:
Цитата
[Editor's note: 
 That is due the fact Win32 systems treat premissions. You do not really have any other levels but read-only. 
 
 Maxim] 
 
 
 On WinME with apache chmod also works to a certain limit. 
 
 What happens is that apparently only the first number is counted, so 0666 (read-write) is the same as 0777, 0644, 0600, etc, and 0444 (read-only) is the same as 477, 400, etc. 
 
 ..didn't test 0500 series


Более точного описания свой мысли что-то не нашел... Загадили весь инет, что информацию уже найти нельзя.

Автор: skyboy 7.9.2008, 09:23
ну, я думаю, все же проблема в PHP. ведь chmod - такого понятия в windows не встречал. есть консольная cacls и GUI'шная оснастка. значит, в РНР происходит вызов какой-то функции ядра. Возможно, проблема с вызовом. И будет исправлено в будущем. Тут бы разработчикам вопрос задать напрямую. на php.net, кстати, ни одного бага, связанного с chmod, не зарегистрировано...

Автор: Mal Hack 7.9.2008, 12:48
skyboy, при чем тут PHP????? Права  достепа в никсах и в винде реализовываются по разному !!!!!

Автор: skyboy 7.9.2008, 13:19
Цитата(Mal Hack @  7.9.2008,  11:48 Найти цитируемый пост)
Права  достепа в никсах и в винде реализовываютс

ога. именно потому РНРшная chmod не может "тупо" вызывать команду консоли chmod - для windows такого просто нет. значит, происходит обращение к реализации именно в windows. а иерархия прав все-группа-создатель есть в обеих ОС. и ещё в куче других. и то, что механизмы реализации отличаются, не должно вставлять палки в колеса. unlink вон работает хоть под *nix, хоть под windows.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)