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

Выполнение команды, выполняемой другим пользователем с использованием `su`, дает« стандартный в обязательном терминале »

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

standard in must be a tty

Я прокомментировал "Defaults requiretty" в / etc / sudoers, но по-прежнему имею ту же проблему.

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

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

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

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