WebHostingTalk.ru  

Вернуться   WebHostingTalk.ru > Главные форумы > Технические аспекты и вопросы безопасности

Ответ
 
Опции темы
  #1  
Старый 02.06.2004, 08:40
muhlik muhlik вне форума
Студент
 
Регистрация: 07.05.2004
Сообщений: 10
Отправить сообщение для muhlik с помощью ICQ
По умолчанию

Приветствую всех!!!

Народ подскажите пожалуйста как можно решить вот такие вопросы:
1. как настроить(собрать, подправить) PHP что бы при создании фаилов из скриптов они создавались с маской 002, а не 022?
2. что подправить в исходниках PHP что бы он все popen пропускал через suexec?
3. как сделать так что бы suexec выполнял скрипты с правами rwxrwxr-x, а не только rwxr-xr-x?

PS ну вот собственно и все
Ответить с цитированием
  #2  
Старый 02.06.2004, 11:54
Антон Нехороших Антон Нехороших вне форума
Аспирант
 
Регистрация: 18.04.2002
Сообщений: 88
По умолчанию

1 перед запуском апачи сказать umask 002
2 написать свой supopen
3 поправить suexec
__________________
С уважением,
Антон Нехороших.
Ответить с цитированием
  #3  
Старый 02.06.2004, 12:13
muhlik muhlik вне форума
Студент
 
Регистрация: 07.05.2004
Сообщений: 10
Отправить сообщение для muhlik с помощью ICQ
По умолчанию

Цитата:
Сообщение от [b
Цитата[/b] (Антон Нехороших @ 02 Июня 2004, 12:54)]1 перед запуском апачи сказать umask 002
2 написать свой supopen
3 поправить suexec
Спасибо огромное!!! Я собственно и надеялся что Вы ответите
ЗЫ не очень информативно но направление указано...
Ответить с цитированием
  #4  
Старый 03.06.2004, 07:39
muhlik muhlik вне форума
Студент
 
Регистрация: 07.05.2004
Сообщений: 10
Отправить сообщение для muhlik с помощью ICQ
По умолчанию

Итак пункт 3-й решен заменой:
if ((dir_info.st_mode & S_IWOTH) || (dir_info.st_mode & S_IWGRP)) {
log_err("error: directory is writable by others: (%s)\n", cwd);
exit(116);
}
на:
if (dir_info.st_mode & S_IWOTH)) {
log_err("error: directory is writable by others: (%s)\n", cwd);
exit(116);
}
2-й пункт в решении
1-й пункт пытался решить так: в стандартном /usr/local/etc/rc.d/apache.sh есть вот такая строка:
start_precmd="`/usr/bin/limits -e -U www`"
заменил на:
start_precmd="`/usr/bin/limits -e -U www;/usr/bin/umask 002`"
не помогло
Ответить с цитированием
  #5  
Старый 03.06.2004, 10:00
Антон Нехороших Антон Нехороших вне форума
Аспирант
 
Регистрация: 18.04.2002
Сообщений: 88
По умолчанию

А зачем вообще такая маска то?
Это же дырка делать на файлы права rwxr-xr-x, хотябы юзать umask 007
__________________
С уважением,
Антон Нехороших.
Ответить с цитированием
  #6  
Старый 03.06.2004, 10:12
muhlik muhlik вне форума
Студент
 
Регистрация: 07.05.2004
Сообщений: 10
Отправить сообщение для muhlik с помощью ICQ
По умолчанию

Цитата:
Сообщение от [b
Цитата[/b] (Антон Нехороших @ 03 Июня 2004, 11:00)]А зачем вообще такая маска то?
Это же дырка делать на файлы права rwxr-xr-x, хотябы юзать umask 007
да я не против мне главное что бы созданные PHP-ой файлы были доступни для записи для группы!!!
Ответить с цитированием
  #7  
Старый 03.06.2004, 10:19
Антон Нехороших Антон Нехороших вне форума
Аспирант
 
Регистрация: 18.04.2002
Сообщений: 88
По умолчанию

ну тогда umask 007
__________________
С уважением,
Антон Нехороших.
Ответить с цитированием
  #8  
Старый 03.06.2004, 11:36
muhlik muhlik вне форума
Студент
 
Регистрация: 07.05.2004
Сообщений: 10
Отправить сообщение для muhlik с помощью ICQ
По умолчанию

Цитата:
Сообщение от [b
Цитата[/b] (Антон Нехороших @ 03 Июня 2004, 11:19)]ну тогда umask 007
Антон, я же в 4-ом посте написал что не помогло может я не там umask вставил.

ЗЫ я даже в login.conf прописал
webuser:\
:umask=002:\
:tc=default:
внес пользователя www (от которого работает apache) в класс webuser, но и это не помогло

ЗЫЫ все заработало
ЗЫЫЫ ну а по поводу popen никто поконкретнее не подскажет



Ответить с цитированием
  #9  
Старый 04.06.2004, 10:02
muhlik muhlik вне форума
Студент
 
Регистрация: 07.05.2004
Сообщений: 10
Отправить сообщение для muhlik с помощью ICQ
По умолчанию

ну вот осталось сделать 2 пункт, подскажите хоть в правильном направлении движусь
в php есть файлик ./TSRM/tsrm_virtual_cwd.h, а там есть:

#define VCWD_POPEN(command, type) popen(command, type)

этот define я так понял используется везде и в exec.c и ...

его можно заменить на(как предложил А.Н.):
#define VCWD_POPEN(command, type) supopen(command, type)

а потом в функции supopen заменить command на command = "/usr/local/bin/suexec ...." + command
аргументы которые нужно передать suexec можно узнать из исходников apache, вот я только не знаю откуда взять в коде PHP пользователя который прописан в virtualhost в конфиге апача?
Ответить с цитированием
  #10  
Старый 04.06.2004, 10:04
Антон Нехороших Антон Нехороших вне форума
Аспирант
 
Регистрация: 18.04.2002
Сообщений: 88
По умолчанию

[root@master TSRM]# diff tsrm_virtual_cwd.h.orig tsrm_virtual_cwd.h
227c227
< #define VCWD_POPEN(command, type) virtual_popen(command, type TSRMLS_CC)
---
> #define VCWD_POPEN(command, type) PG(doc_root) ? supopen(PG(doc_root),command, type) : popen(command, type)
254c254
< #define VCWD_POPEN(command, type) popen(command, type)
---
> #define VCWD_POPEN(command, type) PG(doc_root) ? supopen(PG(doc_root),command, type) : popen(command, type)



__________________
С уважением,
Антон Нехороших.
Ответить с цитированием
Ответ


Ваши права в разделе
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько вопросов! jerrs Форум по Web-хостингу 4 13.05.2010 19:58
несколько вопросов о регистраторе и о хостингах ( Паранойа) nilkom Форум по Web-хостингу 1 25.08.2009 16:07
Вопрос по настройке ns. undef Технические аспекты и вопросы безопасности 12 21.03.2004 00:19
Ответьте  на пару вопросов CMShost.ru Домены 21 15.08.2003 11:50
Plesk и suexec avik Технические аспекты и вопросы безопасности 7 11.07.2002 13:01


Часовой пояс GMT +3, время: 18:27.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot