Выполнение команды другим пользователем с помощью `su` дает" стандартное значение должно быть tty"

Я использую STAF для автоматизации тестирования интерфейса db2 с нашим продуктом. Я могу запустить команду, используя su - db2inst1 -c "/home/db2inst1/sqllib/bin/db2 list database directory" но когда я пробую ту же команду с интерфейсом staf, я получаю сообщение об ошибке:

standard in must be a tty

Я прокомментировал "Требуемые значения по умолчанию" в / etc / sudoers, но проблема все еще та же.

3 ответа

Бросьте одинокую черту (-) в команде su. Это вызывает su, чтобы запросить оболочку входа в систему. Tty может потребоваться какой-либо программе в вашей цепочке входа.

/etc/sudoers не регулирует поведение su, Вы хотите что-то вроде

sudo -u db2inst1 "/home/db2inst1/sqllib/bin/db2 list database directory"

Пожалуйста, перейдите по этой ссылке: я попробовал второй вариант ssh -t username @ server 'sudo command'. Это сработало для меня. https://math-linux.com/linux/bash/article/error-standard-in-must-be-a-tty-when-doing-ssh-username-server-sudo-command

Другие вопросы по тегам