как залогиниться к Linux и запустить там скрипт?
2594
12
Необходимо залогиниться к серваку с правами рута, запустить там скрипт и приспокойно удалиться. Как это можно реализовать? Можно ли через делфи? (сервер телнетовского рута не пустит)
akella
Ишь, какой хритрый, рута ему на сервере подавай!
А вообще-то для запуска скриптов на сервере CGI существует.
В том-то и дело, что CGI запускается не от имени рута!
akella
Для этого существуют алиасы. Скрипты запускаются по nobody. Но это будет такой дырой :)))
akella
А что, cron уже отменили?
akella
Ну кто ж тебе рута на сервере даст!
akella
1) во-первых: кто сказал, что твоему скрипту для выполнения рут нужен?
2) Ты вообще на том сервере есть (заведен, как пользователь)? под ним и запускай....
3) а если вопрос в том, что тебя телнет рутом не пускает зайти... ну, зайди по ssh (как там это в дельфи делается, не знаю) или зайди под юзером и стань рутом или воспользуйся sudo, либо скрипт должен быть suid-ным....

если честно, не понятно в чем проблема состоит... если еще есть о чем спрашивать - пожалуйста :o)
Joe Moe
>1) во-первых: кто сказал, что твоему скрипту для выполнения рут нужен?

В общем суть такова, надо зайти на сервер и запустить на нем squid restart. Отличный от рута этого никто сделать не сможет, поэтому и встала такая проблема..

>2) Ты вообще на том сервере есть (заведен, как пользователь)? под ним и запускай....

Заведен... рут

>3) а если вопрос в том, что тебя телнет рутом не пускает зайти... ну, зайди по ssh (как там это в дельфи делается, не знаю) или зайди под юзером и стань рутом или воспользуйся sudo, либо скрипт должен быть suid-ным....

так вот как это реализовать???
akella
используй rsh, rexec, ssh, cron - именно в таком порядке...

cron - если известна периодичность запуска, то
ssh - если под виндой есть такой клиент, то это предпочтительнее

Если с ssh не получилось, то rexec или rsh. В любом случае (в случае использования любого из клиентов) формат команды одинаково прост:

-l root '/path/to/script/scriptname'

l = маленькая L (в ssh и rsh одинаково)


например,

ssh -l root '/root/restart_squid.sh'
akella
(сервер телнетовского рута не пустит)
----
А ты сделай, чтоб пустил, но только с определенного IP (твоей рабочей станции).
akella
>>>В общем суть такова, надо зайти на сервер и запустить на нем squid restart. Отличный от рута этого никто сделать не сможет, поэтому и встала такая проблема.. >Заведен... рут
akella
> зайди под юзером и стань рутом

> так вот как это реализовать???

А что, просто сказать su из того же телнета не выходит?