Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
ZhirPing
Зарегистрирован: 12.06.2006 Сообщения: 2
|
Добавлено: Пн Июн 12 2006 18:55 Заголовок сообщения: Выполнить команду под рутом удаленно |
|
|
Задача в следующем. Необходимо написать скрипт, чтобы по ssh заходить на хост и убивать процесс, запущенный от рута.
sudo не работает.
Ручками это выглядит примерно так.
ssh HOST_NAME
ввод пароля
ps -ef | grep Process_Name
запоминаем pid процесса
su
ввод пароля рута
kill -9 pid_процесса
exit
exit |
|
Вернуться к началу |
|
|
Feniksa
Зарегистрирован: 28.08.2005 Сообщения: 122 Откуда: Чернобыль
|
Добавлено: Пн Июн 12 2006 21:45 Заголовок сообщения: |
|
|
Дак вам надо просто удалённо убить процесс, который запустил ROOT ??? |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Пн Июн 12 2006 22:27 Заголовок сообщения: |
|
|
1. Настраиваем SSH-клиента и SSH-сервер на работу с ключами. Тем самым убиваем проблему ввода пароля.
2. У SSH есть опция -c, которая и заставляет ssh передать команду, которую выполнит сервер. Аналогично rsh, только трафик между клиентом и сервером будет зашифрован. Учтите, что при запуске скриптов через ssh клиенту не позвращается код возврата команд (если это вам, конечно, надо). Прийдется извращаться с передачей этих кодов через файлы.
Доки по настройке этого сценария легко найти на opennet.ru |
|
Вернуться к началу |
|
|
ZhirPing
Зарегистрирован: 12.06.2006 Сообщения: 2
|
Добавлено: Ср Июн 14 2006 14:28 Заголовок сообщения: |
|
|
настройки ssh я трогать не могу.
я пробовала
ssh -t HOST_NAME ps -ef | grep Process_Name | awk {print $2}
т.е. получается вернуть pid процесса
а вот как дальше его убить, т.е залогиниться под рутом и kill ума не приложу |
|
Вернуться к началу |
|
|
Dmitry_Karpov
Зарегистрирован: 23.02.2006 Сообщения: 212 Откуда: Москва, Матвеевское
|
Добавлено: Сб Июн 17 2006 20:13 Заголовок сообщения: |
|
|
ZhirPing писал(а): | ssh -t HOST_NAME ps -ef | grep Process_Name | awk {print $2} |
Интересно, где выполняются процессы grep и awk? Как я понял, на терминале.
А если так: Код: | ssh -t HOST_NAME 'kill `ps -ef | grep Process_Name | awk {print $2}`' | , то это выполнится на хосте.
Думаю, надо написать программу - либо на C, либо на Perl с поддержкой su. Программа должна принадлежать руту и группе "убийцы_процессов"; и иметь атрибуты 4110 или 4550 ('man chmod'). Сама программа должна посылать убивающий сигнал ('man kill') процессу, чей PID она получает: - либо от программы ps, запустив её из себя;
- либо из аргумента командной строкИ или со стандартного ввода.
Далее есть масса способов вплоть до установки этой программы в ~/.profile юзеру - тогда при входе этого юзера в систему будет убиваться процесс. _________________ Хочу в Хогвардс преподавателем информатики. |
|
Вернуться к началу |
|
|
|