为什么我会在一年内运行良好的脚本中出现此错误? - sudo:对不起,你必须有一个tty来运行sudo

问题描述:

我有一个脚本每晚运行。用户标识设置在sudoers中以执行这些功能。我不打算禁用“Defaults requiretty”,特别是不知道为什么它现在突然成为问题。为什么我会在一年内运行良好的脚本中出现此错误? - sudo:对不起,你必须有一个tty来运行sudo

下面是它使用sudo的作用:

sudo lvcreate -- size 19000M –snapshot –name snap_u /dev/mapper/vg_u-lvu 
sudo mount /dev/vg_u/snap_u /snapshot 

sudo rsync -av --delete --bwlimit=12000 –exclude usr/spoolhold --exclude email --exclude tempfile /snapshot/ /u1/prev/dir 

sudo umount /snapshot 
sudo lvremove -f /dev/vg_u/snap_u 

在过去的几个星期它不工作的大部分时间。有时当我“手动”运行命令时,它工作正常。当它失败我看到这则消息填充日志文件:

须藤:对不起,你必须有一个tty运行sudo的

的问题开始了,当我换一些其他的脚本远程备份。我在这个脚本中改变的唯一的东西是评论。该脚本由使用'nohup'在后台运行的应用程序调用。

在我的测试过程中,当我想立即再次运行它时,我终止了进程以阻止它在后台运行。从那以后,我遇到了这个问题。所以,我的问题是这些:

  1. 这个错误可能与'杀死'这些进程(也许我杀了错误的)?
  2. 解决方案的任何想法?
+0

以下是有关该问题的更多信息。这个脚本中有多个sudo命令。前两名没有发生事故。 (创建快照和挂载快照)。第三个(rsync)是什么引发这个消息。我检查了sudoers,看到rsync在NOPASSWD列表中。更神秘的是,剧本每运行一次都会运行。 –

1) Could this error be related to ‘killing’ those processes (Maybe I killed the wrong one)?

没有

2) Any ideas for a solution?

这在/etc/sudoers有关requiretty配置选项。在某些更新过程中,它可能会在那里或默认情况下发生变化。将它设置为off,你应该很好。

+0

所以,你是说requiretty的默认值最初可能已经关闭,然后更新将其打开?但是,那不是说我每次试图这样做都会炸弹吗?现在,它有时会起作用。所以,有些事情是间歇性的。 –

+0

如果它“有时”起作用,这是非常奇怪的,可能是不同的问题... – Jakuje

+0

是的。这就是我一直认为的,它与requiretty设置无关。我试图将其隔离。如果我找到共同的线索,我会回复。 –