Запуск процесса от имени другого пользователя (root)

Обсуждаются как существующие проекты (перевод документации, информационная система и т.п.), так и создание новых.

Модератор: Модераторы

Запуск процесса от имени другого пользователя (root)

Сообщение shade » 01.04.2007 12:30:14

Знаю, что есть команда su/sudo..

Нужен свой вариант su который смог бы принять пароль через командную строку, исполнить некоторый скрипт или программу от имени другого пользователя (а именно от root)..

Ну или готовая утилита тож сойдет :wink:

PS1: комментарии по поводу безопасности не принимаются, просто нужно восстановить ssh на удаленном сервере, физический доступ временно не доступен, но есть возможность исполнить скрипт/программу от имени не привелигированного пользователя, пароль root-а естественно имеется...
PS2: Перенаправление ввода ( echo password | su ) не работает :( , видимо в целях безопасности..
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение Attid » 01.04.2007 16:26:23

про команду не знаю, но можно написать демона который будет стартовать при зарузке из /etc/init.d/ соответственнно с правами рута
и выполнять все команды которые появляются в файлике "/home/us/cmd" и удолять его после этого.

хотя может не понял ситуации =/
если есть иксы то стартануть их и vncserver
хотя при условии что оно все есть =)
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение debi12345 » 01.04.2007 17:24:35

Attid писал(а):если есть иксы то стартануть их и vncserver
хотя при условии что оно все есть =)

Как наступавший на эти "грабли", VNC-сервер рекомендую запускать как "Х-extention module". Включается через "Module...Load" в Х-вом конфиге. Там же прописывается и автризация. При установке пакета VNC-сервера файл этого расширения копируется в соответствующий каталог Х-ов.

ПС:
Будут еще вопросы - завтра с сервера фрагмент рабочего конфига предоставлю.

А запуск от ROOT - установить SUID-бит на екзешник nоn-root пользователя. Опасная практика !
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение shade » 01.04.2007 17:24:38

Ситуация такая:

Есть удаленный сервер.
К нему можно (было) подключаться через терминал - за это отвечает демон sshd - настройки которого и были сбиты, в результате чего ни один пользователь не может удаленно подключиться через терминал.

На том же сервере есть веб-сервер и фтп, с помошью которых можно забросить cgi-скрипт и исполнить от имени непривелигированного пользователя.

Задача: нужно повысить свои права, что можно было бы сделать с помощью su (от SuperUser), но она ожидает пароль через стандартный ввод, но при этом блокирует попытки перенаправления ввода/вывода (см. выше), и через командную строку пароль не принимает..

А чтобы править /etc/init.d/ нужно уже быть залогиненым под root
Иксов на сервере нет, там и монитора нет...

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

Короче конкретно вопрос такой: "Как в Linux из одного процесса запустить другой процесс от имени другого пользователя (соответствующие логин и пароль имеются)?".

Решение для Windows мне известно LogonUser/CreateProcessAsUser - и то для использования этих API-функций нужно обладать определенными привелегиями (ими обладает SYSTEM, т.е. по умолчанию это могут делать службы).

Но как это сделать в Linux? т.е. как написать свой su?
Последний раз редактировалось shade 01.04.2007 17:29:04, всего редактировалось 1 раз.
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение shade » 01.04.2007 17:25:23

Блин, решение очевидно - смотреть исходники su :lol:
Чет, я сразу об этом не подумал, привык к винде, что там все закрыто..
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение Yogrik » 02.04.2007 00:35:37

Я так и не понял что конкретно нужно сделать.
Но вообще есть еще и sudo, и вероятно она тебе подойдет
Yogrik
постоялец
 
Сообщения: 116
Зарегистрирован: 23.03.2006 00:41:48

Сообщение Attid » 02.04.2007 12:05:18

Yogrik
ему не подойдет =)

shade
если нароешь поделись что там да как
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение shade » 02.04.2007 13:45:56

Мне на другом форуме про бит suid толкуют, буду пробовать..

PS: сервер восстановлен, но для другой задачи тоже нужно..
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение GigoVich » 02.04.2007 18:32:03

:lol: Нашёл эксплоит (ну стопудняк найдётся под конкретную системку 8) ) залил рутшелл - действуй )))))
GigoVich
новенький
 
Сообщения: 99
Зарегистрирован: 07.11.2005 02:05:02
Откуда: г. Москва

Сообщение Attid » 25.03.2008 17:40:10

решил поднять тему.

shade писал(а):бит suid толкуют,

эт немного не то

в общем оказывается надо лучше документацию читать и все проще будет , я пошел окольным путем, скачал исходник судо посмотрел что там да как , час времени угробил =) оказалось все просто используем FpSetuid

но как бы к твоему взлому никак не поможет, а написать свой судо запросто, две команды и вперед =)
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E


Вернуться в Разное

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru
cron