Я должен выполнить команду как другой пользователь путем обеспечения ИХ пароля. Это должно смочь быть сделанным без терминала иначе просто через сценарий удара. Я также должен смочь сделать это, не устанавливая пользовательский пакет (sshpass, и т.д.) или настроив любые доступные для корня файлы (sudoers, и т.д.).
Вещи я попробовал:
sudo -u 'myuser' -- sh -c 'mycommand'
su - 'myuser' -c 'mycommand'
ssh 'myuser'@localhost 'mycommand'
Все они работают в выполнении цели выполнения команды как другой пользователь. Однако аутентификация является проблемой...
sudo
- Позволяет Вам предоставлять пароль через стандартный вход с помощью -S
флаг. Однако это запрашивает Ваш пароль - не пароль пользователя, Вы пытаетесь выполнить команду как.su
- Позволяет Вам предоставлять их пароль вместо Вашего, но он может только быть предоставлен через терминал!ssh
- Позволяет Вам предоставлять их пароль, но он также может только быть предоставлен через терминал. Это также имеет намного больше служебный, чем предыдущие два.Если su
имел a -S
флаг как sudo
эта проблема была бы решена. Что-то (встроенное) существуют, который может выполнить эту операцию? В противном случае, почему это не существует? Кажется, нет никакой проблемы с безопасностью потому что sudo
уже обеспечивает способность передать пароли через стандартный вход.