Не могу поменять разрешения на файл с помощью php chmod?

Не удается поменять разрешения на файл с помощью chmod php
<?php
echo "Current user:".get_current_user()."\r\n";
$processUser = posix_getpwuid(posix_geteuid());
print "Process user:".$processUser['name']."\r\n";
chdir( dirname ( __FILE__ ) );
//$old = umask(0);
$fname='./1.js';
//$fname= dirname ( __FILE__ ).'/1.js';
echo $fname."\r\n";
echo "current perm:".substr(sprintf('%o', fileperms($fname)), -4)."\r\n";
$permitions=fileperms($fname);
chmod($fname,0444);
echo "Try to 444:\r\n";
echo "current perm:".substr(sprintf('%o', fileperms($fname)), -4)."\r\n";
echo "Return:\r\n";
chmod($fname,$permitions);
echo "current perm:".substr(sprintf('%o', fileperms($fname)), -4)."\r\n";
//umask($old);
?>

Выход:
Current user:apache
Process user:apache
./1.js
current perm:0644
Try to 444:
current perm:0644
Return:
current perm:0644
  • Вопрос задан
  • 2378 просмотров
Решения вопроса 1
nojoke
@nojoke Автор вопроса
На самом деле все менялось.
fileperms кэшировало предыдущий результат.
Вставил clearstatcache(); перед fileperms и все отобразилось как положено.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
FilimoniC
@FilimoniC
print_r(posix_getpwuid(fileowner($filename)));
Кто Owner файла? Должен быть apache, иначе будет фейл
Ответ написан
Комментировать
svd71
@svd71
скорее всего владельцем файла является кто-то другой. Попробуйте сменить владельца.

раз у вас юзер apache, то смею предположить, что действия ведутся под виндой. В никсовых системах файлы обычно пренадлежат юзеру www-data.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы