php не имеет прав на запись в корневую папку
Что такое Chmod, какие права доступа назначать файлам и папкам (777, 755, 666) и как это сделать через PHP
Сегодня я хотел бы поговорить о правах доступа к файлам и папкам (читайте что такое файл). Это понятие пришло в мир вебмастеринга из linux (Unix) подобных систем, на которых работает большинство хостингов.
Да и само название Chmod является наименованием программы в linux, которая позволяет назначить права доступа различным объектам. А раз ваш сайт установлен на сервере под управлением linux (Unix) той или иной вариации, то и работа с объектами вашего вебсайта будет подчинена правилам, установленным операционными системами linux (Unix).
В Windows фактически для всех файлов устанавливаются максимальные полномочия, что, собственно, и приводит к засилью вирусов на сайтах и наших компьютерах, а так же, в свою очередь, не дает умереть с голоду владельцам антивирусных компаний. В linux (Unix) системах дело обстоит иначе – все сложнее, но одновременно и безопаснее. Если все настроить правильно и со знанием дела, то можно существенно повысить безопасность своего вебсайта.
Базовые понятия прав доступа к файлам и папкам
Если же все пустить это дело на самотек и не заморачиваться с установкой нужных привилегий, то вероятность взлома вашего ресурса или заражения его вредоносным кодом будет очень велика. Хорошо, если вы осуществляли резервное копирование (бэкап) всех ваших данных, а если нет?!
Поэтому лучше сразу же, не откладывая в долгий ящик, произвести настройку и изменение Чмод для всех важных объектов вашего движка, исходя из принципа минимализма. Т.е. давать объектам минимально необходимые для корректной работы вебсайта права.
Давайте сначала разберемся в сути вопроса, чтобы понимать, что именно и каким образом мы настраиваем. Итак, приступим. Права доступа разделяются по отношению к файлам и к директориям. Обозначаются они одинаково, но означают немного разное.
В свою очередь, по отношению к файлам возможно:
Остановимся чуть подробнее на возможности исполнения файла. Дело в том, что в linux любой файлик может быть исполнен. Является ли он исполнительным — определяется не по его расширению (понятие расширение отсутствует в файловой системе Unix), а по правам доступа Chmod. Если у какого-либо файлика установлено право на исполнение “X”, то это означает, что его можно запустить на выполнение.
По отношению к директориям возможно:
В системах Линукс все это раздает главный администратор компьютера, доступ к которому он получает путем ввода пароля. И если большинство объектов будут иметь права только для чтения, то вирусам на таком компьютере делать будет практически нечего, т.к. они не смогут себя туда ни записать, ни затем исполниться. Именно этого результата нам нужно добиться, выставляя нужные Chmod на объекты нашего сайта.
Привилегии для групп пользователей
Сами привилегии подразделяются на три категории в зависимости от того, кто обращается к объекту:
Сервер определяет, к какой группе пользователей вас отнести в момент подключения вас к серверу. Когда вы, например, подключаетесь к серверу по протоколу FTP, то вы входите под своим именем пользователя (и паролем), и тогда сервер относит вас к группе «user» («u)».
Прочие пользователи, которые тоже подключаются по FTP к серверу, будут отнесены к группе «group» («g»), а посетитель, который приходит к вам на вебсайт, используя свой браузер, попадает в группу «world» («o»).
Вариации трех возможных значений «r», «w» и «x» для трех категорий «u», «g» и «o» и определяют Chmod к файлам. Если не задана какая-то категория, то она заменяется знаком дефисом «-». Привилегии указываются последовательно в заданном порядке:
После того, как сервер отнесет посетителя к определенной группе, он предоставляет ему права на действия с объектами, после чего посетитель сможет прочитать, записать или выполнить файл (в зависимости от того, что разрешено делать с данным объектом его группе).
Чтобы посмотреть содержимое каталога, он должен иметь атрибут чтения «r» (для той группы, к которой сервер отнес посетителя). Чтобы создать файлик или папку в уже существующей необходимо, чтобы этот существующий каталог имел атрибут на запись «w».
Для наглядности давайте разберем пример, где владелец файла («user» — «u») имеет все права: на чтение, запись в него и исполнение, а все остальные пользователи только привилегию на чтение. Запись таких Chmod будет выглядеть так: «rwx r— r—».
Рассмотрим ее в деталях: «rwx» (эта запись задает права на объект для владельца — «u»), «r—» (эта запись задает права на тот же объект, но в случае, если посетитель отнесен сервером к группе — «g»), «r—» (эта запись задает привилегии на объект для всех остальных пользователей — «o»).
Чем отличаются права файлов и папок
Получается, что существует три группы пользователей и три возможных действия с объектами. Еще не запутались? Разложим все сказанное выше по полочкам в виде табличек. Сначала наглядно посмотрим, чем они отличаются:
«Права» | « Файл» | «Папка» |
r | Просмотр содержимого | Можно прочитать содержимое каталога |
w | Изменение содержимого | Можно изменять содержимое каталога — писать и удалять объекты |
x | Запуск файлика на выполнение | Позволяет зайти в каталог и обратиться к его файликам |
А так же табличка, показывающая разнообразные комбинации Chmod для разных типов объектов:
«Права» | «Файл» | «Папка» | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
— | Ничего нельзя делать | Доступ к каталогу и его подкаталогам запрещен | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
r— | Можно читать содержимое | Можно прочитать содержимое каталога | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rw- | Можно видеть и изменять содержимое | Можно добавить, удалить, изменить файл каталога | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rwx | Читать, изменять и выполнять файлик | Можно читать, удалять, изменять файлики, сделать каталог текущим, т.е. “войти” в этот каталог. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
r-x | Можно прочитать, либо выполнить | Можно зайти в каталог и прочитать его содержимое, удалять или добавлять файлы нельзя. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
— x | Выполнить, если файлик двоичный |
«Права» | «Цифровая форма» | «Символьная форма» |
Ничего нельзя делать | 0 | — |
Только чтение | 4 | r— |
Только запись | 2 | — w- |
Только выполнение | 1 | — x |
Чтение и запись | 6 | rw- |
Чтение и выполнение | 5 | r-x |
Чтение, запись, выполнение | 7 | Rwx |
А теперь давайте рассмотрим различные комбинации записи в цифрах, применительно к группам пользователей:
«Права» | «Владелец» | «Группа» | «Остальные» |
777 | читать записывать исполнять | читать записывать исполнять | Читать записывать исполнять |
776 | читать записывать исполнять | читать записывать исполнять | Читать записывать |
775 | читать записывать исполнять | читать записывать исполнять | Читать исполнять |
774 | читать записывать исполнять | читать записывать исполнять | Читать |
766 | читать записывать исполнять | читать записывать | Читать записывать |
655 | читать записывать | читать исполнять | Читать исполнять |
644 | читать записывать | читать | Читать |
Вы сами (кроме того случая, когда получаете доступ к сайту по FTP) и все остальные посетители вашего ресурса, относитесь к группе “word” (все остальные), поэтому для работы с вебсайтом нам нужно в первую очередь смотреть на последнюю (третью) цифру данной записи.
Для того, чтобы при работе пользователя с сайтом «запускался файл» скрипта, достаточно будет, чтобы на него были установлены права, начиная от «4» (r— – только чтение) (5,6,7 тоже подойдут, но это будет лишнее в плане безопасности).
Для каталога же, в котором лежит файлик этого скрипта, нужно выставить минимум «5» (r-x — можно зайти в каталог и прочитать его содержимое, удалять или добавлять нельзя). 7 тоже подойдет, но тоже будет уже лишним в плане безопасности.
Если нужно, чтобы скрипт не только читался, но и «записывал» какие-то данные (например, введенные посетителем), то минимальные права на «папку» по-прежнему будут «5», но для «файлика» уже понадобится «6» (читать и записывать).
Скорей всего на сервере, куда вы скопировали содержимое движка вашего сайта, будут установлены следующие Chmod к объектам:
Папки | 755 | владелец (user) может всё, группа и все остальные могут только читать каталоги и заходить в них, но им запрещено записывать файлики, изменять названия и стирать их в директориях. (rwxr-xr-x) |
Файлы | «644» | владелец (user) может читать и изменять файлики, исполнять ему их запрещено, всем остальным запрещено их изменять и исполнять, остальные могут только читать. «(rw-r—r—)» |
Если бы у вас был ресурс, состоящий из одних html страниц, то можно было бы все так и оставить. Но современные сайты построены на движках, и там могут быть объекты, в которые нужно производить запись от имени посетителей из группы «world» — o (все остальные). Это могут быть каталоги, используемые для кэширования страниц или те, в которые по ходу работы с сайтом будут загружаться картинки и др.
Само собой, что если вы зайдете на сайт по FTP, то сможете произвести запись в эти файлики или директории, но работая с вебинтерфейсом как обычный пользователь у вас могут возникнуть проблемы. Поэтому к установке тех или иных прав надо подходить избирательно:
Как назначить Chmod посредством PHP
Как же все это можно реализовать на практике для своего сайта? В принципе, все просто. Для назначения прав доступа можно использовать программу Ftp клиента, например, FileZilla:
Но если Чмод на какие-либо файлы поменять не получается, то можно попробовать назначить их PHP средствами. Вы можете воспользоваться следующим кодом:
prava.php скопируйте по FTP в ту директорию, в которой не получается штатными средствами назначить права доступа. В адресной строке браузера пропишите путь до prava.php (например, https://ktonanovenkogo.ru/prava.php) и нажмите «Пуск» или энтер на клавиатуре. Все, теперь привилегии будут стопроцентно изменены средствами PHP.
Для Joomla, сразу после ее установки, можно выставить 777 на следующие директории:
После того, как вы установите для Джумлы все расширения и произведете окончательные настройки, Chmod к большинству из приведенных выше директорий следует в целях повышения безопасности сайта вернуть к 755. Оставить 777 нужно будет на каталоги с кешем, с бекапом и с картинками.
Для файлов движка, находящихся в корне сайта, кроме sitemap.xml, лучше установить 444 (для всех групп посетителей только чтение). На seting.php иногда советуют даже установить 400.
Точно такие же советы могу дать и по поводу установки прав доступа на объекты в движках SMF и WordPress. Желательно, по возможности, оставлять на постоянной основе для директорий 755 (кроме оговоренных выше каталогов кеша, картинок, бекапа и может быть еще каких-то, по мере необходимости), а для файликов — 644.
На файлы в корне сайта лучше поставить 444.
Если при работе с сайтом возникнет проблема с невозможностью записи настроек в какой-нибудь файлик или невозможностью создать какую нибудь директорию, то можно временно поставить на них большие права (777, например), а потом все вернуть обратно (от греха подальше). И ни в коем случае не стоит оставлять (для простоты работы с сайтом) необоснованно завышенные Chmod.
Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru
Комментарии и отзывы (40)
Зачем назначать для объектов, находящихся в корне сайта права доступа 444, если владелец может изменить их?
Интетесно узнать более подробнее о назначениях директорий
Макс, логично, конечно же, владелец может все, вне зависимости от выставленных прав (собственно, вы же сами их и меняете). Но в целях безопасности так делают. Я не знаю всех тонкостей взлома сайта, но такие рекомендации я слышал неоднократно. Думаю, что существует возможность злоумышленнику прикинуться владельцем.
Указанные вами папки используются различными расширениями, реализующими функции кеширования и создания резервных копий данных.
Интересно на сколько безопасно можно пользоваться встроенной возможностью передачи файлов по ftp в joomla?
Макс, не знаю насчет безопасности самого FTP в Joomla, сначала я даже не знал зачем оно там надо. Только недавно прочитал, что настроив доступ по FTP через Joomla можно не давать полного доступа на каталоги, куда нужно установить расширения. Или если нужно конфигурационный файл подкорректировать. Это сделано для облегчения жизни администратора сайта.
Да это очень удобно! Сат пользуюсь только в целях страховки регулярно выключаю эту возможность, надо узнать может это лишняя мера =)
права задаются всегда относительно того, от какого юзера в системе запущен апач.
у меня на ВСЕ папки, ВКЛЮЧАЯ кэш 775, отлично работает.
Значит можно смело ставить755 и 644,думаю. Да? Если админ только я.
Marusya говорит, что:
Значит можно смело ставить755 и 644,думаю. Да? Если админ только я.
. и под твоей учеткой работает Апач. Если так — то ДА.
Дмитрий спасибо! Отличная статья. Все подробно «разжёвано». Для новичков это очень ценно.
Подскажите, пожалуйста, на какие папки надо открыть доступ для работы файлового контейнера, например remository или docman
Подскажите, пожалуйста, на какие папки надо открыть доступ для работы файлового архива??
В файле configuration.php лежит и логин, и пароль к FTP. Если поставить права 444, то все смогут прочесть его? Тогда остаётся только вариант 400?
Андрей говорит, что:
В файле configuration.php лежит и логин, и пароль к FTP. Если поставить права 444, то все смогут прочесть его? Тогда остаётся только вариант 400?
Интересно, кто тогда сможет зайти на Ваш сайт? По-моему, Вы получите проблему с доступностью сайта.
Всё умно и просто написано, фактически все вопросы задаваемые мной в браузере приводят на новенького, действительно во всех статьях всё разжёвано до мелочей, просто круто. Если заработаешь миллион — ты того стоишь! Огромное уважение и спасибо!
Спасибо, толковая статья! Я новичок в этих делах. Не могу зайти на сайт tfile.ru написано 500- Internal Server Error. Чтобы исправить надо выставить права 755 и 644. А как это сделать практически? Куда и как зайти, для этого файла не могу понять. Будьте добры подскажите.
вот я доигрался с правами, теперь в админ панель жумлы вообще не могу войти. Что делать, кто подскажет? Сайт работает, фтп пускает нормально.
Александр: Filezilla в помощь. Открываешь сайт, подводить мышь к файлу. Правый щелчок и выбрать права доступа.
При при переносе сайта с локального сервера в интернет возникли проблемы с чмод на папки, то есть в разделе «Помощь — Информация о системе — папки недоступны на запись, хотя 755. Помогает, только когда меняю на 777. Это нормально вообще с точки зрения безопасности или нужно решать вопрос с техподдержкой хостинга?
Такой вопрос при установки нового модуля, шаблона, компонента выходит ошибка 500. Что это может быть.
Удается установить вручную, но после активации модуля — та же ошибка на сайте 500.
Здравствуйте, вопрос таков.
Я прочитал статью. У себя на фтп сайта chmodы отрегулировал.
Но браузер директорию всё равно не открывает.
You don’t have permission to access /abc/ on this server.
Где я чего не доглядел?
Здравствуйте! У меня на блоге выставлены следующие права доступа:
root directory 700
WP — Security Scan орет благим матом. Все подчеркнул красным. Ответьте, пожалуйста, чем грозят мне такие права? Что в них плохого?
Заранее благодарю за ответ!
Совсем ничего не понятно где устанавливается доступ к файлам. А тупо доверять FileZilla, которая неизвестно что и где пропишет нет желания. Как будто сговорились, ни слова о главном, копипастите что-ли друг у друга информацию один в один и ничего по существу.
Самурай, возможно вам надо больше почитать про это, а доверять инструменту Вам в любом случае прийдется, не зилле так другому).
«Оставить 777 нужно будет на папки с кешем, с бекапом и с картинками.»
Для чего картинкам такие широкие привилегии, разве картинки могут быть исполняемыми? Не опасно ли ставить полные права на картинки для всех (публичных) пользователей?
Спасибо большое за статью. Помогло. Проблема решена.
Здравствуйте! Помогите, пожалуйста, советом: пытаюсь запустить инстал скрипта, стандартно заполняю
но как только нажимаю далее — все данные просто исчезают.
Заранее благодарен за ответ!
А Скрипт то какой?И Ссылку на скрипт
Спасибо помогло. Нужно было поменять права на изображение, а с помощью filezila не получалось. Оказывается как просто если знать что делать.
А акие последствия если поставить доступ к корневой папке не 755, а 750?
Я благодарю вам, только с ваших примеров ко мне дошло эти 777 )), так как u+rwx осилил, а с восьмеричной как то туго было. Спасибо большое за написанное.
Дмитрий, добрый день.
Помогите, пожалуйста советом. Как объясниться с хостером?
Люди подскажите что делать? Ломанули сайт на движке джумла и теперь не магу зайти в админку, Ввожу логин и пароль но открывается чистый лист. Что не так?
Спасибо тебе Человечище! Я тоже в 40 лет иду по твоим стопам. И это ЕДИНСТВЕННЫЙ встреченный мною ресурс где все написано человеческим языком. Чувствуется МЭИ)))
r — право на чтение данных.
w — на изменение содержимого (запись – только изменение содержимого, но не удаление).
x — на исполнение файла
Зная англооснову гораздо проще понимать, в основном у вас это прописывается кстати, тут только.
Добрый день в статье есть ошибка во второй таблице с верху:
—x Пользователь может выполнить двоичный файл о существовании которого ему известно, зайти или прочитать каталог запрещено
это не верно зайти как раз таки пользователь может, и увидеть дерево каталогов, но прочитать содержимое не может.
«В Windows фактически для всех файлов устанавливаются максимальные полномочия» — бредовоеhttp://windata.ru/windows-7/bezopasnost-7/prava-dostupa-k-fajlam-i-papkam-v-windows-7/ заявление. На самом деле в Windows можно настроить права доступа к любой папке или файлу как захочешь — информации по этой теме в интернете — море.
меня интересует такой вопрос: если я выставлю права на папку 777, а затем в hptaccess разрешу доступ только определенным ip, это будет работать?
ситуация следующая: в папки сапы и других бирж с правами закачиваются вирусняки и прочая дрянь. Изменить права на 755 или другое я не могу: робот биржы должен иметь возможность заходить и менять файлы. Следовательно я подумал о таком решении вопроса. но не знаю будет ли это работать.
Спасибо за статью, но немного не понимаю про права на каталог, и вложенный в него файл для тех или иных команд. К примеру, какие должны быть права на каталог и вложенный файл, если я хочу создать жесткую ссылку на файл, которая будет вести в вышележащий каталог? А если я хочу переместить файл в соседнюю ветку дерева? В конце концов, какие минимально возможные права на файл и каталог, если я хочу удалить этот каталог?
Предоставление PHP разрешения на запись в файлы и папки
ОБНОВЛЕНО ДЛЯ ДАЛЬНЕЙШЕЙ ЯСНОСТИ:
ОРИГИНАЛЬНЫЙ ВОПРОС:
Мне нужно убедиться, что PHP может писать в определенные файлы (666) и папки (777).
Как мне это сделать?
Я дополню ответы Рахму и М.В. техническим решением. Все, что следует, действительно только для UNIX-подобных систем.
Поиск имени пользователя вашего веб-сервера
Чтобы проверить это, попробуйте:
Предоставление разрешений веб-серверу: использование chmod и chown
Лучше быть более конкретным и дать разрешения только вам и Apache. Измените группу ваших файлов, чтобы предоставить полный контроль над вашими файлами веб-серверу. Для этого рекурсивно измените владельца:
Но, скорее всего, вы можете сохранить полный доступ к своим файлам, изменив только группу:
В 90% случаев этого должно быть достаточно.
Мой предпочтительный метод: использование ACL (Access Control List)
Иногда первого решения недостаточно. Я возьму пример Symfony Framework, который регистрирует и кэширует много данных. Так что для этого нужен доступ на запись в соответствующую папку.
И метод chmod / chown может оказаться недостаточным, если вы параллельно используете консоль Symfony в CLI (под моей учетной записью пользователя) и в Интернете (пользователь веб-сервера). Это вызывает много проблем, потому что Symfony постоянно изменяет разрешения.
В этом случае мы будем использовать ACL (Access Control List), который является более продвинутым способом управления разрешениями во многих системах UNIX.
Вот команды, приведенные в официальной документации Symfony ( пожалуйста, измените app/cache и app/logs под свои нужды ):
В системе, которая поддерживает chmod +a (т.е. не Debian / Ubuntu)
В системе, которая не поддерживает chmod +a (чаще всего)
Если команда недоступна и вы используете Ubuntu 14.04+, вам просто нужно установить инструмент:
В противном случае следуйте документации по вашей ОС, потому что вам может потребоваться изменить способ монтирования вашего раздела ( документация по Ubuntu здесь ).
У меня никогда не было проблем с этим методом, доволен или ваши деньги обратно.
chmod
(PHP 4, PHP 5, PHP 7, PHP 8)
chmod — Изменяет режим доступа к файлу
Описание
Список параметров
Возвращаемые значения
Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.
Примечания
Текущим пользователем является пользователь, от имени которого выполняется PHP. Возможно, что это будет не тот пользователь, под именем которого вы получаете доступ к командной оболочке или учётной записи FTP. На большинстве систем режим доступа к файлу может быть изменён только его владельцем.
Замечание: Эта функция неприменима для работы с удалёнными файлами, поскольку файл должен быть доступен через файловую систему сервера.
Смотрите также
User Contributed Notes 17 notes
BEWARE, a couple of the examples in the comments suggest doing something like this:
chmod(file_or_dir_name, intval($mode, 8));
$mode = 644;
chmod(‘/tmp/test’, intval($mode, 8));
. produces permissions that look like this:
Instead, use octdec( ), like this:
BEWARE using quotes around the second parameter.
If you use quotes eg
php will not complain but will do an implicit conversion to an int before running chmod. Unfortunately the implicit conversion doesn’t take into account the octal string so you end up with an integer version 644, which is 1204 octal
Value Permission Level
400 Owner Read
200 Owner Write
100 Owner Execute
40 Group Read
20 Group Write
10 Group Execute
4 Global Read
2 Global Write
1 Global Execute
In the previous post, stickybit avenger writes:
Just a little hint. I was once adwised to set the ‘sticky bit’, i.e. use 1777 as chmod-value.
Note that in order to set the sticky bit on a file one must use ‘01777’ (oct) and not ‘1777’ (dec) as the parameter to chmod:
Note that info at rvgate dot nl’s chmodnum function produces INCORRECT results. The resutls are base-10 numbers that only LOOK like they are octal numbers. The function also ignores setuid, setgid and sticky bits, and will produce incorrect numbers if such a file is encountered. Instead, this brute-force code works. Maybe there is something more slick, but this isn’t too CPU-intensive (note that it assumes you’ve error-checked that you indeed have a 10-character string!):
= ‘drwxr-xr-x’ ; // or whatever
$mode = 0 ;
Windows has a very different file permission model to Unix and integrates them only minimally.
The executable flag cannot be set as Windows determines it based on file extension.
The write flag cannot be set as Windows determines write access based on ACLs, which are not integrated here.
an update to ‘neil at 11 out of 10’s code for changing mode using FTP.
changes: proper array added within the function (better for those of us who only need to connect to one ftp server) so only the mode and directory name need to be passed.
the octal added, for completeness and predictable stability.
?>
for those of you, like me, who were looking for a way to make an ‘un-hackable’ uploader, here’s the closest i got, now for a field test, good luck!
I was trying to change permissions of a folder with chmod command with FTP connection. (I needed a writable folder to upload pictures with php)
I got the following respond:
«SITE CHMOD 777 uploads: command not understood»
The reason: Server is running under Windows system that does not allow to set file permissions via FTP. Conversely, the UNIX-running servers allow that.
1. If your web hosting provider has a web-based control panel that lets you set file permissions, then you need to login there and make changes.
2. It is possible to contact the hosting provider and ask them about this issue; maybe they can make the changes.
3. It is possible to change the hosting provider that has servers run on UNIX, and keep the site there.
( E_ERROR | E_PARSE );
/* Makes is so Directories are not browseable to the public,
removing only the Public = Read permission, while leaving
the other chmod permissions for the file in tact.
# User Read = 0400 (256), Write = 0200 (128), Execute = 0100 (64)
# Group Read = 0040 (32), Write = 0020 (16), Execute = 0010 (8)
# Public Read = 0004 (4), Write = 0002 (2), Execute = 0001 (1)
‘ : ‘**Live Run Activated.**
\n» ;
echo «[. IN PROGRESS. ]
For recursive chmod’ing both files and directories in one step you can use the function below. Note that this function has one argument for directory permissions and one for file permissions.
In this way you can apply the ‘x’ permission on directories, and skip it on directories. This function also skips links.
chmod_R( ‘mydir’, 0666, 0777);
Makes all files and directories within mydir/ directory accessible for everyone, but doesn’t make the files executable.
I guess for very deeply nested directories the recursion with php can become problematic, but I can be wrong because I never investigated this.
if you want to chmod directories too, use this
Thanks for your code, «imoldgreg at o2 dot co dot uk». I am using it for an instalation script that has to CHMOD a bunch of files. I have found it faster to use the same connectino for each, as shown below.
// Thanks to «imoldgreg at o2 dot co dot uk» for the base ‘CHMOD via FTP’ script.
// CHMOD the required setup files
// Connect to the FTP
$conn_id = chmod_open ();
?>
Here, the same FTP connection is used for each CHMOD command, making the execute time lower. This is essential for me, since my script is also copying a bunch of files.
I use the code of haasje@welmers.net, but have a lite alteration. (linux symlink)
Just an update of the solution with octdec. You have to give octdec the string as a parameter.
$mode = ‘644’;
chmod(file_or_dir_name, octdec($mode));
- php начало недели по дате
- php не равно null