我在用斯坦福使用我们的产品自动执行 db2 接口测试。我能够使用运行该命令,su - db2inst1 -c "/home/db2inst1/sqllib/bin/db2 list database directory"
但是当我尝试使用 staf 接口执行相同命令时,我收到错误:
standard in must be a tty
我评论了 /etc/sudoers 中的“Defaults requiretty”,但仍然存在同样的问题。
答案1
删除 su 命令中的单破折号 (-)。这会触发 su 请求登录 shell。登录链中的某些程序可能需要 tty。
答案2
/etc/sudoers
不控制行为su
。你想要类似
sudo -u db2inst1 "/home/db2inst1/sqllib/bin/db2 list database directory"
答案3
请参考此链接:我尝试了第二种选择ssh -t 用户名@服务器'sudo 命令'. 它对我有用。 https://math-linux.com/linux/bash/article/error-standard-in-must-be-a-tty-when-doing-ssh-username-server-sudo-command