The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Запуск на выполнение файлов из программы"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Запуск на выполнение файлов из программы"  
Сообщение от gladiator87 (ok) on 09-Мрт-09, 17:53 
Добрый день всем.
Я пишу программу на С++. У меня возникла проблема.
У меня есть набор пользователей системы и файлы, которые необходимо запускать от имени этих пользователей. Запуск этих файлов на выполнение производится с целью проверки прав доступа, т.е. если нет права "x" для данного пользователя запуск производиться не должен.

Как из программы осуществить такой запуск с помощью команды exec мне понятно. Но есть проблема, в том что я не знаю, что это за файлы и мне не нужно чтобы они выполнялись. Подскажите пожалуйста есть ли какой-нибудь способ запуска любого файла на исполнение, с тем чтобы он запускался и сразу бы не приступая к выполнению останавливался?

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Запуск на выполнение файлов из программы"  
Сообщение от gaa (ok) on 09-Мрт-09, 18:00 
> Запуск этих файлов на выполнение производится с целью проверки прав доступа, т.е. если нет права "x" для данного пользователя запуск производиться не должен.

man 2 access --- проверка, возможен ли для текущего пользователя доступ к файлу (в частности, на исполнение)

> Подскажите пожалуйста есть ли какой-нибудь способ запуска любого файла на исполнение, с тем чтобы он запускался и сразу бы не приступая к выполнению останавливался?

Попробуй толком объяснить, _зачем_ тебе нужно так извращаться.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Запуск на выполнение файлов из программы"  
Сообщение от gladiator87 (ok) on 09-Мрт-09, 18:10 
>> Запуск этих файлов на выполнение производится с целью проверки прав доступа, т.е. если нет права "x" для данного пользователя запуск производиться не должен.
>
>man 2 access --- проверка, возможен ли для текущего пользователя доступ к
>файлу (в частности, на исполнение)
>

Как получить права на файл понятно. Кроме указанного вами есть еще несколько способов,
но это мне не нужно.

>> Подскажите пожалуйста есть ли какой-нибудь способ запуска любого файла на исполнение, с тем чтобы он запускался и сразу бы не приступая к выполнению останавливался?
>
>Попробуй толком объяснить, _зачем_ тебе нужно так извращаться.

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Запуск на выполнение файлов из программы"  
Сообщение от gaa (ok) on 09-Мрт-09, 18:13 
>>Попробуй толком объяснить, _зачем_ тебе нужно так извращаться.
>
>Ну скажем мне нужно проверить систему разграничения доступа. Нужно проверить реально, что
>если нет права "х" то файл на исполнение не запустится. При
>этом я хочу запущенные файлы сразу остановить, чтобы он что-нибудь не
>натворил.

Если тебе надо проверить саму систему (которая, между прочим, в ядре сидит и давно отлажена), то тестируй на файлах, в безопасности которых сомнений нет. Зачем нужно тестировать на непонятно чём?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Запуск на выполнение файлов из программы"  
Сообщение от gladiator87 (ok) on 09-Мрт-09, 18:19 
>Если тебе надо проверить саму систему (которая, между прочим, в ядре сидит
>и давно отлажена), то тестируй на файлах, в безопасности которых сомнений
>нет. Зачем нужно тестировать на непонятно чём?

Список файлов для исполнения поставляется как входные данные и я не знаю какие файлы там могут быть. Поэтому и возникает такой вопрос с остановкой(ограничением).

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Запуск на выполнение файлов из программы"  
Сообщение от angra (??) on 09-Мрт-09, 18:28 
man ptrace
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Запуск на выполнение файлов из программы"  
Сообщение от gladiator87 (ok) on 09-Мрт-09, 18:51 
>man ptrace

Спасибо. Это кажется то что нужно. Вот только возник вопрос.
При выполнении дочерним процессом команды exec, в случае отсутствия прав на выполнение,
системные вызов exec вернет ошибку первым или первым возникнет прерывание по сигналу SIGTRAP?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Запуск на выполнение файлов из программы"  
Сообщение от gaa (ok) on 09-Мрт-09, 18:31 
>>Если тебе надо проверить саму систему (которая, между прочим, в ядре сидит
>>и давно отлажена), то тестируй на файлах, в безопасности которых сомнений
>>нет. Зачем нужно тестировать на непонятно чём?
>Список файлов для исполнения поставляется как входные данные и я не знаю
>какие файлы там могут быть. Поэтому и возникает такой вопрос с
>остановкой(ограничением).

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

В качестве наводящих вопросов:
1. Так надо в конечном итоге запустить файл или нет?
2. Если не надо, то чем не устраивает проверка права на запуск?
3. Если надо запустить, то зачем приостанавливать исполнение?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Запуск на выполнение файлов из программы"  
Сообщение от angra (??) on 09-Мрт-09, 18:44 
Тут есть два варианта
1. Надо проверить не x bit, а будет ли в действительности успешным execve ибо есть несколько вариантов когда access вернет неверное значение, о чем сказано в его же мане.
2. Препод именно так сформулировал задание нерадивому студенту :)
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Запуск на выполнение файлов из программы"  
Сообщение от gladiator87 (ok) on 09-Мрт-09, 18:57 
>1. Так надо в конечном итоге запустить файл или нет?

Запустить файл надо. Выполнять то что в файле не нужно.

>2. Если не надо, то чем не устраивает проверка права на запуск?

Тем что так стоит задача, запустить и убедиться.

>3. Если надо запустить, то зачем приостанавливать исполнение?

Потому что запускаемый файл может быть любым и не известно что он делает.
Возможно что он нормальный и ничего плохого от его работы не будет, но ведь возможен и другой вариант. И в конечном итоге задача проверить запуск, а не выполнить файл.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Запуск на выполнение файлов из программы"  
Сообщение от gaa (ok) on 09-Мрт-09, 19:50 
>И в конечном итоге задача
>проверить запуск, а не выполнить файл.

Ты сам себе такую задачу поставил или на заборе прочитал? Не вижу у неё никакой практической ценности.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Запуск на выполнение файлов из программы"  
Сообщение от gladiator87 (ok) on 09-Мрт-09, 20:03 
>Ты сам себе такую задачу поставил или на заборе прочитал? Не вижу
>у неё никакой практической ценности.

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Запуск на выполнение файлов из программы"  
Сообщение от vic (??) on 09-Мрт-09, 20:55 
>>Ты сам себе такую задачу поставил или на заборе прочитал? Не вижу
>>у неё никакой практической ценности.
>
>А вот это уже не вежливо с вашей стороны.
>Я просил совета как это можно реализовать, а не мнения о практичности
>данной задачи.
>Поэтому считаю наш с вами диалог закрытым.

Правильная реализация данной задачи на прямую зависит от понимания ее практической ценности. гы-гы :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "Запуск на выполнение файлов из программы"  
Сообщение от gaa (ok) on 09-Мрт-09, 22:50 
>>Ты сам себе такую задачу поставил или на заборе прочитал? Не вижу
>>у неё никакой практической ценности.
>А вот это уже не вежливо с вашей стороны.
>Я просил совета как это можно реализовать, а не мнения о практичности
>данной задачи.
>Поэтому считаю наш с вами диалог закрытым.

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

14. "Запуск на выполнение файлов из программы"  
Сообщение от gladiator87 (ok) on 10-Мрт-09, 20:16 
Всем спасибо за помощь.
Отдельное спасибо за совет angra.
Проблему решил при помощи функции ptrace, она позволяет перехватить
исполняемый файл сразу после вызова exec и передать управление родительскому
процессу, после чего я спокойно из родительского процесса завершаю дочерний.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру