Я могу подключиться к удаленной машине, используя открытый / закрытый ключи (без пароля) как пользователь wakatana
. На удаленной машине я могу выдать: sudo /usr/bin/rootsh -i -u root
затем я ввожу пароль root и получаю разрешения root. Теперь я хотел бы «полуавтоматизировать» этот процесс. Под полуавтоматизацией я подразумеваю, что мне все равно потребуется пароль root, но я также смогу передавать другие команды, которые будут выполняться с правами root, например, cat /etc/shadow
Я попробовал следующую команду: ssh -t targetmachine "sudo /usr/bin/rootsh -i -u root; cat /etc/shadow"
но это дает мне интерактивное приглашение root (после ввода пароля), и я смог использовать удаленную машину, как будто я вошел в систему как root. Только после нажатия ctrl+d
кажется, что он пытается открыть /etc/shadow
потому что я получаю сообщение:
cat: /etc/shadow: Permission denied
Connection to targetmachine closed.
Мне нужно как-то передать команду cat /etc/shadow
для rootsh
. Но проблема в том, что я не могу soduo
любую другую команду, кроме /usr/bin/rootsh -i -u root
Например, когда я попробовал sudo /usr/bin/rootsh -i -u root -- cat /etc/shadow
я получил:
Sorry, user wakatana is not allowed to execute '/usr/bin/rootsh -i -u root -- cat /etc/shadow' as root on targetmachine.
Подводя итог, мне нужно
- получить доступ к целевой машине:
- переключить пользователя на root на удаленном сервере (введите пароль)
- выполнить команду под этим переключенным пользователем
- закрыть соединение с удаленным сервером
Обратите внимание, что мне не разрешено:
- редактировать файл sudoers
- добавление открытых / закрытых ключей в root
- разрешить прямой вход в систему root
Спасибо
РЕДАКТИРОВАТЬ:
Также я попытался предложить:
echo date | sudo /usr/bin/rootsh -i -u root
но это возвращает:
no tty/pty on stdin: Invalid argument