Показано с 1 по 3 из 3

Тема: chmod()

  1. #1

    Регистрация
    10.05.2007
    Сообщений
    4

    Здравствуйте, помогите плиз разобраться с одним вопросом. На сервере не работает функция chmod(). Там стоит безопасный режим, может поэтому не работает. В мануале по php для этой функции написано :


    Замечание: Текущим пользователем является пользователь, от имени которого выполняется PHP. Возможно, что этот пользователь будет отличаться от пользователя, под именем которого вы получаете доступ к командной оболочке или учетной записи FTP.

    Может нужен специальный доступ как админ соего аккаунта на хостинге.

    Как же заставить заработать эту функцию, только не предлагайте использовать FTP-функции.

  2. #2

    Регистрация
    20.07.2006
    Адрес
    Moscow
    Сообщений
    15
    При включенном safe_mode вы, по идее, можете сделать chmod только тем файлам, которые принадлежат тому же пользователю, что и исполняемый скрипт. Пусть этот пользователь называется user. Но дело в том, что сам интерпретатор php запущен и работает от имени другого пользователя - допустим, httpd. А если пользователь не root (а на хостингах практически не встречается веб-сервера, запущенные от имени root), то он не имеет права менять права на файлы принадлежащие другим пользователям. Таким образом, при включенном safe_mode вам не удастся воспользоваться функцией chmod().

    Если же safe_mode выключить, намного лучше не станет. Потому что тогда интерпретатор PHP позволит вам менять права на любые файл, но в силу того, что apache (а значит и php) работает не под именем пользователя root, ОС разрешит опреации с правами только для файлов принадлежащих пользователю httpd, под которым запущем apache. Т.е. вы сможете управлять правами только на те файлы, которые созданы php-скриптами, т.е. принадлежат пользоателю httpd. Собственно, это единственный способ заставить работать chmod() - создавать файлы скриптами и работать с ними с помощью скриптов.

    А почему вы не хотите использовать [Только зарегистрированные пользователи могут видеть ссылки. ]?

  3. #3

    Регистрация
    10.05.2007
    Сообщений
    4
    Спасибо за ответ!

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

    Я не хочу использовать ftp_chmod() потому что во-первых пользователю придётся вводить адрес ftp, пароль и логин при установке (это по идее не проблема), а во-вторых не все сервера открыты, есть много ананимных закрытых серверов, к ним не получишь доступ через фтп-функции, да ещё и придётся грузить программы лишними кодами, что затруднит сопровождение и отладку.

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

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •