从文件管理器调用 sudo 命令时失败

从文件管理器调用 sudo 命令时失败

我正在尝试在安装的 Fedora 20 上运行以下脚本。

#!/bin/bash
password={password}
echo "$password" | sudo -Sk /bin/bash -c '[[ $EUID -eq 0 ]]'
[[ $? -ne 0 ]] && zenity --error --text failed. || zenity --error --text success.

当尝试从终端模拟器运行时,它会报告成功,但当从文件管理器(本例中为 Thunar)双击脚本时,它会报告失败。

在其他一些发行版(例如 Debian Wheezy)上,我得到了一致的行为。

为什么会出现这种情况?我应该怎样做才能解决这个问题?

答案1

在 /etc/sudoers 文件(可使用 visudo 访问)中,查找requiretty.您可以通过以下方式为程序关闭此功能:

Defaults!/path/to/program !requiretty

在你的情况下 - 你正在使用 bash,所以这个路径将是你从 获得的任何路径which bash

答案2

您应该验证 sudo 不需要/etc/sudoers文件中的 tty (requiretty不应设置)。

相关内容