Здравствуйте!
Нужна возможность запуска команд root на удаленной системе поверх ssh - и это не вручную а в пакетном режиме
Подробнее:
коннект идет со скрипта (проверка по ключам, юзер в группе wheel):#!/bin/sh
CONNECT="ssh -l <user> <IP> -p <port>"
command=`$CONNECT 'su - root -c 'команда''`там команды которые может выполнять только root, так вот на этапе su нет ни запроса пароля (чтобы его можно было вот ввести вручную и скрипт пошел дальше), ничего - в логах ошибка как если бы вводился неправильный пароль root
Как такое можно решить?
Спасибо!
>command=`$CONNECT 'su - root -c 'команда''`Неправильно вложены кавычки (не факт что причина проблемы, но важное замечание)
$ echo 'su - root -c 'команда''
su - root -c команда$ echo "su - root -c 'команда'"
su - root -c 'команда'
Если список команд фиксированный, то лучше использовать sudo, разрешив выполнение только для этих команд, желательно лимитировав и передаваемые параметры.
>Если список команд фиксированный, то лучше использовать sudo, разрешив выполнение только для
>этих команд, желательно лимитировав и передаваемые параметры.man sudo ;)
sudo -u root -p root_pass /.../script
>>Если список команд фиксированный, то лучше использовать sudo, разрешив выполнение только для
>>этих команд, желательно лимитировав и передаваемые параметры.
>
>man sudo ;)
>sudo -u root -p root_pass /.../scriptТ.е. вы хотите сказать, что не читали этот ман и решили что-то написать невпопад ?
>[оверквотинг удален]
>CONNECT="ssh -l <user> <IP> -p <port>"
>command=`$CONNECT 'su - root -c 'команда''`
>
>там команды которые может выполнять только root, так вот на этапе su
>нет ни запроса пароля (чтобы его можно было вот ввести вручную
>и скрипт пошел дальше), ничего - в логах ошибка как если
>бы вводился неправильный пароль root
>
>Как такое можно решить?
>Спасибо!Если уж так надо, чем не выход
в sshd_config
PermitRootLogin yes
AllowUsers root@откда_ты_ходишь
а потом
ssh root@твой_сервер "command --with-keys"
А еще лучше, заранее обменяться ключами (и пароли не нужны)
>[оверквотинг удален]
>CONNECT="ssh -l <user> <IP> -p <port>"
>command=`$CONNECT 'su - root -c 'команда''`
>
>там команды которые может выполнять только root, так вот на этапе su
>нет ни запроса пароля (чтобы его можно было вот ввести вручную
>и скрипт пошел дальше), ничего - в логах ошибка как если
>бы вводился неправильный пароль root
>
>Как такое можно решить?
>Спасибо!вы хотите велосипед изобрести да?
чем вас не устраивает выполнение команд самим ssh`ом?
раз аутентификация по ключам значит осталось только написать
ssh user@host command command_argument1 [...]
или коннектица рутом или разрешить юзверю запускать прогуusage: ssh [-1246AaCfgkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-e escape_char] [-F configfile]
[-i identity_file] [-L [bind_address:]port:host:hostport]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-R [bind_address:]port:host:hostport] [-S ctl_path]
[-w tunnel:tunnel] [user@]hostname [command]UPDATE: не прочитал последний пост, предлагаю то же самое...