Выполнение команды другим пользователем с помощью `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