![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
tepkuh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.4.2008 Репутация: нет Всего: нет |
Доброе, Уважаемые.
Я вот тут дня три пытаюся отсерчить гугл и все как то без результатно. У меня такая вот задача: Есть jre которая запускается с админскими правами (либо root под *никсом либо administrator под виндой) мне надо чтобы моя программа запускала новый поток под правами другого пользователя(а именно пользователь операц. системы oracle) и брала весь энваремент этого(oracle) пользователя. Т.е. аналог "su -" под никсом или "runas" под виндой. Не мог бы ты подсказать хотя бы направление куда копать? |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Так может как раз через sudo и запускать - из командной строки.
|
|||
|
||||
tepkuh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.4.2008 Репутация: нет Всего: нет |
Я думал по поводу этого но это не юзабельно не фига( по двум пунктам - Мне нужно запускать именно поток под опред. юзером с передачей туда параметров, а не команды вида "ps -ef". - Как быть под виндой не представляю даже. Там ведь выскочить консоль cmd'шная где надо будет ввесли пароль. А это вроде как не круто. Вообщем я это решение оставил на самый крайний случай |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
А вообще есть ОС которая бы такое позволяла? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
tepkuh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.4.2008 Репутация: нет Всего: нет |
не много не понял вас. Что значит есть такая ОС? - Если вы про команду "ps -ef" то это вывод спика процессов под боьшенством *никс лайк систем - Если вы про возможность операц. системы работать сразу с несколькими пользоватеялми то это большенство операц. систем от виндовзов НТ4.0 до любыйх *никсов. - Если вы про мою фразу "запускала новый поток под правами другого пользователя" то я естсественно очепятался так как все потоки работают в рамках одного процесса (соответственно, с общим адресным пространством и привилегиями). Т.е. нужен новый процесс под правами др. польвателя) |
|||
|
||||
ecologist |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 452 Регистрация: 28.2.2007 Репутация: 2 Всего: 9 |
Ну так и надо писать - "процесс". А то "поток" - у меня аж голова уехала.
Под Виндой можно javaw запускать. Параметры - ну в конце концов можно в файл записать - хоть 10 метров параметров. |
|||
|
||||
tepkuh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.4.2008 Репутация: нет Всего: нет |
Нуу... виноват)
Но возникают дальше вопросы как мне дальше то быть. Т.е. мне то нужен в конечном итоге результат отработки метода под заданным юзером и соотвветсвенно его энварементом? Это все безобразие так чтоли должно выглядеть: Runtime.getRuntime().exec(runas /user:Юзер "java any.jsp any.method"); Как мне получить то что отработал метод, что то я с процессами не очень дружу( Мне ведь от него объект надо получить( |
|||
|
||||
ecologist |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 452 Регистрация: 28.2.2007 Репутация: 2 Всего: 9 |
Если второй процесс тоже на JAVA - то можно сериализовать.
Если что-то другое - в файл все поля прописать и потом считывать. Или можно через сокеты пообщаться - но по-моему это усложняет, а толку немного. |
|||
|
||||
tepkuh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.4.2008 Репутация: нет Всего: нет |
||||
|
||||
tepkuh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.4.2008 Репутация: нет Всего: нет |
хотя фиг знает. Не поперло меня с сериализацией. Не сериализуются мои объекты(
Буду думать через сокеты( ЗЫ. Я же говорил))) Runtime.getRuntime().exec... это попытка выкрутится( чем придумать хорошее решение |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Так другого решения все равно нет - процесс-то отдельный. А как с ним общаться - тут уже вариантов много. Ну можно попробовать через ProcessBuilder - там всяких возможностей с установкой окружения побольше. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Именно об этом. И без Runtime.exec() не обойтись. Можно использовать RMI, в данном случае все будет достаточно просто. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
tepkuh |
|
||||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.4.2008 Репутация: нет Всего: нет |
нипалучится( Вот копи-паси из учибника про RMI: RMI использует механизм сериализации по умолчанию Java для передачи параметров методу и возврата значений через сеть. В этой связи все параметры метода и возвращаемые значения должны иметь описатель Serializable или один из примитивных типов. А у меня мой один объект не сериалзуется. Часть серилизуется, а часть нет. Не знаю мож не так что то делаю. У меня вот есть такой код котороя должна работать отдельным процессом под отдельным юзером.
И есть другой класс который выполняется из под root'а\administrtor'а:
получаю вот такую вот ошибку: java.io.NotSerializableException: org.eclipse.swt.browser.Browser если Серилизация не поперла, то и RMI не должен( Но чуть попозже попробую Надо еще разобратся как он работает) Что то там мудренно очень) Это сообщение отредактировал(а) tepkuh - 20.5.2008, 16:04 |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
1. Что мешает сделать классы сериализуемыми?
2. В любом случае как-то данные передавать придется, хоть в бинарном виде, хоть в текстовом виде (по сокетам ничего другого не передашь). А byte[] и String прекрасно передаются с помощью сериализации. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
tepkuh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.4.2008 Репутация: нет Всего: нет |
там бабка за дедку ципляется. Делаю класс org.eclipse.swt.browser.Browser Сериализованным он цепляется дальше к org.eclipse.swt.browser.IE делаю его сериализованным он идет дальше... Я не уверен можно ли так вообще делать? Там этих классов... они вообщем все на свет лезут. И то я могу сделать так лишь по причине того что org.eclipse.swt является опенсорсовым продуктом и я могу просто править там все что хочу. А оказался он бы закрытым... что бы делать тогда? Если так можно делать я могу по ним пройтись и понаставить у всех классов сериализацию. у меня они тоже передались хорошо из других классов помощью сериализации, без проблем. А вот с этим классом заглох. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |