Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Смена владельца файла средствами PHP  (Прочитано 6069 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ринальдус

  • Автор темы
  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
    • Ринальдус.ру
У меня через админку сайта автоматически создаются PHP-скрипты. Разумеется, в том каталоге, где они создаются, прописаны права 777. Загвоздка в том, что я эти созданные PHP скрипты не могу редактировать из своего аккаунта, хотя права стоят нормальные: 644. Владелец у них - какой-то www-data и группа такая же. А файлы, которые создаю я, имеют владельца и группу rinaldus. И я их могу редактировать. Чтобы редактировать автоматически сгенерированные PHP-файлы, мне приходится под sudo лезть в MC и менять владельца у этих файлов. Подскажите пожалуйста, как средствами PHP можно задать конкретного владельца создаваемых файлов?

Оффлайн Mam(O)n

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Смена владельца файла средствами PHP
« Ответ #1 : 24 Декабрь 2007, 02:00:11 »
Всем созданым файлам через php назначается владелец www-data от того, что апач имеет UID данного аккаунта. А права 644 означают, что править файл может только владелец. Владельца может поменять только root, так что смена через  php владельца не получится(ну не от root же апач запускать). Можно либо сменить аккаунт для апача на твой рабочий (не есть гуд, если сервер не тестовый) либо давать файлам права 666, что тоже по сути не правильно, если сервер не тестовый.

Оффлайн Ринальдус

  • Автор темы
  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
    • Ринальдус.ру
Re: Смена владельца файла средствами PHP
« Ответ #2 : 26 Декабрь 2007, 14:54:36 »
Цитировать
Владельца может поменять только root, так что смена через  php владельца не получится
Ну вот я запускаю MC от рута и в нем меняю владельца файлов. Неудобно. :-[
Цитировать
Можно либо сменить аккаунт для апача на твой рабочий (не есть гуд, если сервер не тестовый)
Как это сделать? Мой сервак, на котором я хочу это сделать, именно что тестовый, я на нем просто разрабатываю сайты. Когда сайт разработан, я все это дело заливаю на удаленный сервак через FTP, а тамошнему апачу вообще пофиг, какой владелец у файла.

Оффлайн stan

  • Активист
  • *
  • Сообщений: 291
  • Kubuntu
    • Просмотр профиля
Re: Смена владельца файла средствами PHP
« Ответ #3 : 26 Декабрь 2007, 15:05:29 »
1) Если не кртично для безопасности и это тестовый сервер, то в php делай chmod($filename, 0666) в php.
2) Только на тестовом сервере: добавь себя в группу www-data.
Kubuntu

Оффлайн Ринальдус

  • Автор темы
  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
    • Ринальдус.ру
Re: Смена владельца файла средствами PHP
« Ответ #4 : 27 Декабрь 2007, 08:41:20 »
Спасибо! Только вот какой вопрос: почему права надо назначать 666, а не 644? У меня и с 644 все скрипты нормально функционируют.

Оффлайн Mam(O)n

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Смена владельца файла средствами PHP
« Ответ #5 : 27 Декабрь 2007, 09:41:25 »
2) Только на тестовом сервере: добавь себя в группу www-data.
И при этом права на файл нужно давать 664. Т.е. разрешить запись для группы.

Спасибо! Только вот какой вопрос: почему права надо назначать 666, а не 644? У меня и с 644 все скрипты нормально функционируют.
Права 666 означают, что чтение и запись доступны для любого  аккаунта данной системы. В отличии от 644 - где запись разрешена только владельцу файла, коим является www-data, т.к. файл создал апач, который запущен с правами этого аккаунта.

Оффлайн stan

  • Активист
  • *
  • Сообщений: 291
  • Kubuntu
    • Просмотр профиля
Re: Смена владельца файла средствами PHP
« Ответ #6 : 27 Декабрь 2007, 10:08:29 »
Спасибо! Только вот какой вопрос: почему права надо назначать 666, а не 644? У меня и с 644 все скрипты нормально функционируют.
Права 666 означают, что чтение и запись доступны для любого  аккаунта данной системы. В отличии от 644 - где запись разрешена только владельцу файла, коим является www-data, т.к. файл создал апач, который запущен с правами этого аккаунта.

ДА!  ;D
Kubuntu

 

Страница сгенерирована за 0.055 секунд. Запросов: 24.