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

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

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

Ответить
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

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

Сообщение shade »

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

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

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

PS1: комментарии по поводу безопасности не принимаются, просто нужно восстановить ssh на удаленном сервере, физический доступ временно не доступен, но есть возможность исполнить скрипт/программу от имени не привелигированного пользователя, пароль root-а естественно имеется...
PS2: Перенаправление ввода ( echo password | su ) не работает :( , видимо в целях безопасности..
Аватара пользователя
Attid
долгожитель
Сообщения: 2588
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

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

хотя может не понял ситуации =/
если есть иксы то стартануть их и vncserver
хотя при условии что оно все есть =)
Аватара пользователя
debi12345
долгожитель
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 »

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

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

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

А запуск от ROOT - установить SUID-бит на екзешник nоn-root пользователя. Опасная практика !
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

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

Есть удаленный сервер.
К нему можно (было) подключаться через терминал - за это отвечает демон 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 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

Блин, решение очевидно - смотреть исходники su :lol:
Чет, я сразу об этом не подумал, привык к винде, что там все закрыто..
Yogrik
постоялец
Сообщения: 116
Зарегистрирован: 22.03.2006 23:41:48

Сообщение Yogrik »

Я так и не понял что конкретно нужно сделать.
Но вообще есть еще и sudo, и вероятно она тебе подойдет
Аватара пользователя
Attid
долгожитель
Сообщения: 2588
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

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

shade
если нароешь поделись что там да как
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

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

PS: сервер восстановлен, но для другой задачи тоже нужно..
GigoVich
новенький
Сообщения: 99
Зарегистрирован: 07.11.2005 01:05:02
Откуда: г. Москва
Контактная информация:

Сообщение GigoVich »

:lol: Нашёл эксплоит (ну стопудняк найдётся под конкретную системку 8) ) залил рутшелл - действуй )))))
Аватара пользователя
Attid
долгожитель
Сообщения: 2588
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

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

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

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

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

но как бы к твоему взлому никак не поможет, а написать свой судо запросто, две команды и вперед =)
Ответить