Назад | Перейти на главную страницу

Лучший способ запустить удаленную команду SSH, требующую root, но не root

Я не могу выполнить следующую команду:

 ssh someuser@lab-test "sudo /usr/local/scripts/user.sh add tstt7777 177700007 \"Test User 06\" "

Короче говоря, мне нужно запустить сценарий user.sh с правами ROOT в качестве пользователя с удаленной машины. Однако я не хочу, чтобы какой-либо пользователь мог запускать ЛЮБЫЕ другие команды, открывать оболочку или иным образом иметь доступ к системе. Пользователю нужно только запустить этот сценарий с несколькими динамическими аргументами.

Я уже занимался обменом открытым ключом и добавил привилегии в sudo:

#Sudo
someuser  ALL = NOPASSWD: /usr/local/scripts/user.sh

Но я получаю следующую ошибку:

sudo: sorry, you must have a tty to run sudo

Я посмотрел на функцию «Command =» в ssh, но я понимаю, что это будет запускать только указанную команду и не позволит передавать аргументы, как указано в моем вызове.

Что-то мне не хватает, чтобы мой метод работал через sudo?

Есть ли лучший метод, который я не рассматривал в SSH или BASH?

Запустите visudo и закомментируйте, как показано ниже:

#Default requiretty

Просто добавьте -t (pseudo-tty) вместе с командой ssh.