Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: chmod
Форумы портала PHP.SU » PHP » Программирование на PHP » chmod

Страниц (2): [1] 2 »
 

1. Вездеход - 31 Мая, 2008 - 21:03:42 - перейти к сообщению
я канешно не претендую а звание профи и вполне может быть что я чето не догоняю...
но может мне кто нить обьеснит в чем прикол?

ситуация.

есть функция которая выставляет права CHMOD для папки

PHP:
скопировать код в буфер обмена
  1.  
  2. function chmod_for_dir ($path,$chmod)
  3.         {
  4.                 if (@chmod($path, octdec($chmod)))
  5.                 { $chmod_ok="1"; }  else { $chmod_ok=""; }
  6.                 return $chmod_ok;
  7.         }
  8.  

где
$path - путь на сервере до папки
$chmod - собсна права какие мы хотим. например 0777.
функция вернет 1 если права установлены или 0 если нет.
теперь к делу.
для установки прав мне пришлось написать вот так -
chmod($path, octdec($chmod))
потому что если написать вот так:
chmod($path, $chmod)
то получается черт знает что...
кто нибудь может обьеснить почему так происходит?
тут - http://php.su/functions/?chmod написано что нужно писать так, как у меня например не пашет...

да и еще вопрос.
как выставлять права доступа для файлов ?
пишу так - chmod("/путь/на/сервере/до/файла/файл.txt", 0755);
не пашет вапще Огорчение
2. EuGen - 31 Мая, 2008 - 21:24:11 - перейти к сообщению
Не на все файлы Вам удастся выставить разрешение (точнее, удастся только в том случае, если для такой операции у httpd хватает прав).
Кроме того, для понимания проблемы, рекомендую Вам выставить

и убрать "@" отовсюду.
Кроме того, Вы не можете устанавливать SUID, SGID и "липкие" биты.
3. scuter - 31 Мая, 2008 - 22:18:08 - перейти к сообщению
Вездеход пишет:
как выставлять права доступа для файлов ?
пишу так - chmod("/путь/на/сервере/до/файла/файл.txt", 0755);
не пашет вапще Огорчение

на виндовсе не будет пахать там файловая система другая,
на линуксе будет там можно поставить нужные права.
4. Вездеход - 01 Июня, 2008 - 00:05:10 - перейти к сообщению
у меня не виндоус =)

2 EuGen
попробую...

EuGen пишет:
и убрать "@" отовсюду.

это чтобы не было ниче лишнего при работе сайта. при отладке да - надо =)

EuGen пишет:
Кроме того, Вы не можете устанавливать SUID, SGID и "липкие" биты.

а поподробнее можно?
5. Вездеход - 02 Июня, 2008 - 23:17:11 - перейти к сообщению
пробовал выставить error_reporting(2047)
и пробовал написать error_reporting(E_ALL)

все одно - нету ошибок ибо вапще ниче не пишет.
а скрипт не выполняется...
ни на файлы, ни на папки. =(
помогите плз кто знает...
6. Джур - 02 Июня, 2008 - 23:31:53 - перейти к сообщению

а зачем вы превращаете восмеричное число в десятичное? права же вроде мы в восмеричной системе выставляем... или нихт? Закатив глазки
7. 01es - 03 Июня, 2008 - 00:14:12 - перейти к сообщению
Может проблема в владельце файла?
У меня на хостинге есть проблема с правами схожая. скриптом выставить 0666 на файлы залитые по фтп - никак, пришлось на крон это повесить дело.
8. Вездеход - 03 Июня, 2008 - 00:24:36 - перейти к сообщению
Джур пишет:
а зачем вы превращаете восмеричное число в десятичное? права же вроде мы в восмеричной системе выставляем... или нихт?


если я так не делаю у меня права кривые ставятся.
т.е. если я пишу поставить права 0777 - выставляется чтото типа 1423 (не помню точно)
а так вот почему то корректно отрабатывается...

01es пишет:
Может проблема в владельце файла?

а вот черт его знает... ошибок никаких не вылазиет - типа все отлично...

зы. я не понимаю че творится такое, но вчера эта функция ставила права только для папок - на файлах ругалась. седня часа 2 назад вапще не работала. шас ставит права и файлам и папкам.
блин. я боюсь дальше дописывать....
9. 01es - 03 Июня, 2008 - 01:15:39 - перейти к сообщению
Делаем эксперимент
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $h = fopen("my_file.html","w");
  4. $text = "Этот текст запишем в файл.";
  5. if (fwrite($h,$text))
  6.  echo "Запись прошла успешно";
  7. else
  8. echo "Произошла ошибка при записи данных";
  9. fclose($h);
  10. ?>
  11.  
Теперь смотрим права и владельца
Цитата:
-rw-r--r-- 1 apache apache 26 Jun 3 01:05 my_file.html

Потом загружаем по фтп 1.html, и смотрим владельца
Цитата:
-rw-r--r-- 1 curs apache 598 Jun 3 01:07 1.html

Пробуем
PHP:
скопировать код в буфер обмена
  1. chmod("1.html", 0777);

Warning: chmod() [function.chmod]: Operation not permitted

А попробуем выставить через фтп ему 0776 или даже 0777 что будет?
и снова запускаем chmod
Warning: chmod() [function.chmod]: Operation not permitted

Кароче у залитых по фтп, и созданных скриптами файлов(и каталогов) разные владельцы...
10. Вездеход - 03 Июня, 2008 - 07:39:22 - перейти к сообщению
надо будет попробовать прописать кодик чтоб показали права у кого какие...
и кто владелец чтобы узнать в конце концов =)


зы.
файлы залитые на сервер через скрипт относятся к файлам созданным скриптом или к залитым по фтп?
11. Джур - 03 Июня, 2008 - 11:43:14 - перейти к сообщению
Вездеход пишет:
файлы залитые на сервер через скрипт относятся к файлам созданным скриптом или к залитым по фтп?

К файлам созданым скриптом.
12. Вездеход - 04 Июня, 2008 - 22:14:56 - перейти к сообщению
хм
кто нить может сказать что это такое:

функция filegroup выдает значение 5691 и на загруженных через фтп и через скрипт.
функция fileowner выдает значение 5691 на загруженных через фтп и 2000 через скрипт.

что это за значения такие кто нить знает?
(хост - мастерхост)

вопрос намбер 2
при создании папки скриптом он выставляет идентификатор владельца файла на 2000.
поэтому прописал в функции чтобы менял на 5691. написал так: chgrp('файл', 5691);
не пашет ...
обьесните плз как мне изменить идентификатор владельца файла

для эксперимента прописал chown('файл', 5691) - результат тот же =)
т.е. никакой...
13. scuter - 04 Июня, 2008 - 22:20:49 - перейти к сообщению
думаю придётся тебе через FTP,
ставить права и загружать дополнительные файлы,
наверное твой хостинг настроен как то криво или специально
люди запретили менять права доступа к файлам.
(Добавление)
я имел в виду конектится скриптом по FTP к своему же сайту.
14. Вездеход - 04 Июня, 2008 - 22:22:08 - перейти к сообщению
а есибы был нормальный хост - то я прально все делаю?
или может просто в моих действиях ошипка..
15. scuter - 04 Июня, 2008 - 22:33:46 - перейти к сообщению
Вездеход пишет:
а есибы был нормальный хост - то я прально все делаю?
или может просто в моих действиях ошипка..

ну судить о правильности действия можно когда видишь полностью код,
а на счёт нормального хостинга это действительно так,
иногда даже очень крупные компании имею такие настройки что поначалу удивляешься
почему у них сервак не падает, а потом видишь он действительно падает.

 

Powered by ExBB FM 1.0 RC1