Автор Тема: запуск процесса от имени другого пользователя  (Прочитано 5314 раз)

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

Оффлайн Skif

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 187
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Собственно сабж.
Имеется необходимость запустить ряд процессов от имени другого пользователя. Имеется вебсервер. имеется список личных сообщений с правами 600 и ясен пень права от которых работает сервер и права юзера  - различны.
Как проделать такой финт?
Всё будет хорошо - я договорился!

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
запуск процесса от имени другого пользователя
« Ответ #1 : 10 Сентября 2004, 12:21:51 »
Платформа?
The documentations is your friend

Оффлайн Skif

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 187
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
запуск процесса от имени другого пользователя
« Ответ #2 : 10 Сентября 2004, 13:06:34 »
FreeBSD
root@server #uname -a
FreeBSD server.owe 5.2.1-RELEASE-p9 FreeBSD 5.2.1-RELEASE-p9 #13: Wed Sep  8 15:24:37 GMT 2004     root@server.owe:/usr/src/sys/i386/compile/SKIF  i386
root@server #

root@server #perl -v
This is perl, v5.6.1 built for i386-freebsd
Copyright 1987-2001, Larry Wall

root@server #httpd -v
Server version: Apache/2.0.48
Server built:   Jul  8 2004 20:05:59
root@server #
Всё будет хорошо - я договорился!

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
The documentations is your friend

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
запуск процесса от имени другого пользователя
« Ответ #4 : 10 Сентября 2004, 13:32:02 »
NeoNox

Хм... мне тоже интересен этот вопрос, но при использование этого модуля получается что будет выполняться команда:

> sudo [command]

от указанного пользователя? или просто (от него же):

> [command]

Потому, что если команда будет выполняться с sudo от имени моего пользователя, команда выполнится от пользователя root, что не совсем безопасно...

P.S. Хотя, впрочем, о чем это я... сейчас попробую...

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
запуск процесса от имени другого пользователя
« Ответ #5 : 10 Сентября 2004, 13:40:53 »
он использует IPC::Run.
а вообще это обертка к sudo - man sudo
The documentations is your friend

Оффлайн Skif

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 187
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
запуск процесса от имени другого пользователя
« Ответ #6 : 10 Сентября 2004, 13:52:37 »
А такой вопрос - у меня сервер имеет пользователя www  с правами коего и работает. А файл принадлежит nobody, ясное дело, что ни шела ни каталога нету. Проблем с сим не будет?
Всё будет хорошо - я договорился!

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
запуск процесса от имени другого пользователя
« Ответ #7 : 10 Сентября 2004, 14:06:36 »
NeoNox

Все-таки с sudo... И модуль кривоватый...
IPC::Run - спасибо посмотрю...

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
запуск процесса от имени другого пользователя
« Ответ #8 : 10 Сентября 2004, 14:16:40 »
Skif
Цитировать
А файл принадлежит nobody, ясное дело, что ни шела ни каталога нету

Ну и интересно от имени какого пользователя ты тогда собрался запускать скрипты? Только судя по всему root...

Оффлайн Skif

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 187
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
запуск процесса от имени другого пользователя
« Ответ #9 : 10 Сентября 2004, 14:30:30 »
Вот потому и спрашиваю, чтобы потом локти не кусать.

Оптимальный вариант - от имени именно пользователя nobody

Скрипт выполняется на серваке с процессом под правами www, а сам исполняет действия(скрипт) с правами nobody.
Вот как?
Всё будет хорошо - я договорился!

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
запуск процесса от имени другого пользователя
« Ответ #10 : 10 Сентября 2004, 14:42:55 »
А выполнять с правами nobody основной скрипт никак?
The documentations is your friend

Оффлайн Skif

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 187
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
запуск процесса от имени другого пользователя
« Ответ #11 : 10 Сентября 2004, 14:54:33 »
Объясни как это сделать.
Процессы httpd исполняются с правами www, а каталог и файлы которые мне надо считать 600 с владельцем nobody. Я пытаюсь просмотреть:


$mail_dir
="$user_dir$cur";
print 
"$mail_dir 
"
;
	
opendir (DIR$mail_dir);
	
	
@
allfiles grep {$_ ne \'.\' and $_ ne \'..\'}readdir DIR;
	
closedir (DIR);
	
print @allfiles;
	
$a=@allfiles;
	
print "$a";
	
print "\\n";
for ($ind=0; $ind<=$a; $ind++) {
        $line_arr = $allfiles[$ind];
        $my_arr[$ind]=$line_arr;
}


в результате получаю пустой массив. Не говоря уже про то, что ни один файл я открыть не могу. Вариант поменять права на файлы не катит - каждый раз пополняются с все теми же правами. Попросту - это почтовый ящик. И туда загоняются сообщения для пользователя. Софтина шлепает владельца nobody и права 600.
Все. Ясное дело, что если процесс httpd, с правами которого запускается любой скрипт на серваке, не nobody то доступ он ни куда не получит. конечно, как вариант, надавить на чела и потребовать, что бы поправили конфиг на апаче. Но фишка в том, что у себя то я поправлю, а вот на ТОМ серваке у меня не получиться. А пишу ясен пень не для себя.
Я шел с горем по полам выбил.
Всё будет хорошо - я договорился!

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
запуск процесса от имени другого пользователя
« Ответ #12 : 10 Сентября 2004, 16:18:06 »
Аха. теперь я понял задачу. Значит делаем так:
1) мастерим скрипт который проверяет mail queue и рассовывает почту в твои папки, которые ты сможешь читать скриптом c правами httpd.
2) вешаем его в крон
3) достаем уже разобранную почту. можно прикрутить сюда еще создание индексов для поиска и остальную дребядень.

-1) так как ты задумал сделать не удасться. почта - штука конфиденциальная и просматривать ее кому не поподя не дадут.
The documentations is your friend

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28