【问题标题】:Why might I get this error on a script that has been running fine for a year? - sudo: sorry, you must have a tty to run sudo为什么我会在运行良好一年的脚本上收到此错误? - sudo:对不起,你必须有一个 tty 才能运行 sudo
【发布时间】:2017-05-10 22:00:58
【问题描述】:

我有一个每晚运行的脚本。用户 ID 在 sudoers 中设置以执行这些功能。我不打算禁用“Defaults requiretty”,尤其是在不知道为什么现在突然出现问题的情况下。

这是 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

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

sudo:抱歉,您必须有一个 tty 才能运行 sudo

当我切换其他一些脚本进行远程备份时,问题就开始了。我在这个脚本中唯一改变的是 cmets。该脚本由使用“nohup”在后台运行的应用程序调用。

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

  1. 此错误是否与“杀死”这些进程有关(也许我杀死了错误的进程)?
  2. 有什么解决方案的想法吗?

【问题讨论】:

  • 这里是有关该问题的更多信息。此脚本中有多个 sudo 命令。第 1 次第 2 次运行没有发生任何事故。 (创建快照和挂载快照)。第三个(rsync)是带来此消息的原因。我检查了 sudoers,发现 rsync 在 NOPASSWD 列表中。更神秘的是,该脚本大约每运行 3 次就会运行一次。

标签: linux rsync sudo snapshot


【解决方案1】:

1) 这个错误是否与“杀死”那些进程有关(也许我杀死了错误的进程)?

没有

2) 任何解决方案的想法?

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

【讨论】:

  • 那么,您是说 requiretty 的默认设置可能最初是关闭的,然后更新将其打开?但这是否意味着每次我尝试这样做时它都会爆炸?现在,它有时会起作用。所以,它有些断断续续。
  • 如果它“有时”有效,那就很奇怪,可能是不同的问题......
  • 是的。这就是我一直认为的,它与requiretty设置无关。我正在尝试隔离它。如果我找到一个共同的线程,我会回帖。
  • 我现在正在详细记录事情以隔离问题。但是,这只会让它更加神秘。此脚本运行多个 sudo 命令。前 2 次运行平稳。 (创建快照然后安装它)。第三个 sudo 是 rsync,这是出现第一条错误消息的地方。之后的每个 sudo 都有同样的问题。
  • 我想我可能会缩小范围。该脚本作为“nohup”运行,所以我一直试图将它与同时运行的其他进程联系起来,看看那里是否有问题。我发现如果我更改“睡眠”时间,它将启动 rsync 并在多个文件后出现此错误:rsync 错误:在 rsync.c(546) [sender] 收到 SIGINT、SIGTERM 或 SIGHUP(代码 20) =3.0.6]。我的问题与同时运行的其他进程相关联似乎合理吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2021-03-30
  • 2016-06-30
相关资源
最近更新 更多