Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Повышение привилегий CGI-скрипта, Permission denied... 
:(
    Опции темы
Weider
Дата 8.6.2009, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 8.6.2009

Репутация: нет
Всего: нет



Попробую расписать суть проблемы.

Требуется CGI-скриптом создавать, удалять и модифицировать некоторые файлы, права на которые имеются только у рута, то есть стандартные права root:root -rw-r--r--
Я применяю метод setuid - то есть над скриптом была выполнена команда chmod +s
Сначала я столкнулся с "Insecure dependency running setuid" - решил "очисткой данных" через (возможно не верно, подскажите как правильно, на перле программирую вторую неделю):
my $ut_qstr = $t_qstr;
if ($ut_qstr =~ /^(.*)$/) {
    $ut_qstr = $1;
} else {
    die "Forbidden symbols in query string: '$ut_qstr'";
}
Проблема исчезла но возникла другая - веб сервер усердно ругается:
cannot remove `/xxx/yyy/zzz/123', referer: http://xxx.xxx.xxx.xxx/index.cgi
Permission denied, referer: http://xxx.xxx.xxx.xxx./index.cgi

Если использовать напрямую - все работает: system("rm -rf /xxx/yyy/zzz/123")
Если так: system("rm -rf $path_to_file/123") - ругается
В $path_to_file содержаться данные, очищенные выше.

Извините за сбивчивость, яснее пока не выскажусь.
Очень нужны какие-нибудь идеи или концепции как реализовывать такого рода задачи.
PM MAIL   Вверх
shamber
Дата 8.6.2009, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: нет
Всего: 18



а так 
system("rm -rf ".$path_to_file."/123")
PM MAIL Jabber   Вверх
KSURi
Дата 9.6.2009, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 2
Всего: 27



Weider, попробуйте добавить -wU в shebang скрипта

Это сообщение отредактировал(а) KSURi - 9.6.2009, 15:48


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
Weider
Дата 9.6.2009, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 8.6.2009

Репутация: нет
Всего: нет



Цитата(shamber @ 8.6.2009,  22:21)
system("rm -rf ".$path_to_file."/123")

сработало... не понятно почему, ведь интерполяция проходит...
но при этом например не работают маски... пока пишу функцию для массового копирования и удаления файлов

shabang wU помогает, спасибо
интерфейс для внутреннего использования, надеюсь не поломают =)

Спасибо за ответы!
PM MAIL   Вверх
shamber
Дата 9.6.2009, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: нет
Всего: 18



Цитата(Weider @  9.6.2009,  10:50 Найти цитируемый пост)
ведь интерполяция проходит..

как то хреново происходит smile
PM MAIL Jabber   Вверх
Weider
Дата 19.6.2009, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 8.6.2009

Репутация: нет
Всего: нет



В продолжение темы: выяснилось что повышенные suid'ом права на CGI-скрипт чудесным образом теряются по пути.
Мой скрипт вызывает через system() бинарник, который в процессе своей работы вызывает часть локальных шелл-команд (конкретно в моем случае - /usr/bin/ld). И вот уже этот самый линкер ld вызывает из под апача...
Пока воркэраунд - suid для ld.

Есть ли выход чтобы не повышать привелегий на все системные проги?
PM MAIL   Вверх
arto
Дата 27.6.2009, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 1
Всего: 40



man sudo
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0705 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.