- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图通过将 SUDO_ASKPASS 导出到具有以下行的脚本来在 bash 脚本中将 kdialog 与 sudo 结合使用
kdialog --password "enter password: "
并使用 sudo -A。这很好用,除了如果我在对话框中单击取消,sudo 会忽略它,并在延迟后重试密码输入。单行脚本以 kdialog 的退出状态退出,如果单击取消,则退出状态为非零。
有没有什么办法可以说服 sudo 放弃,就像在文本界面中输入 control-C 一样?
编辑 - 最终我弄清楚了发生了什么。如果您单击取消,kdialog 将输出一个换行符。 Sudo --askpass 将此解释为空密码,并开始处理错误密码。如果单击取消,askpass 脚本不得发出该换行符。一种方法是
pe=$(kdialog --password 'enter password: ') && echo "$pe"
最佳答案
为此,经过几次尝试,我现在对 SUDO_ASKPASS
脚本使用以下解决方法:
#!/bin/bash
kdialog --password 'Enter password: ' || kill -9 "${PPID}"
如果用户选择取消,则调用进程(sudo 命令)被终止。
如果您直接从命令行调用脚本,为了降低错误终止您自己的进程的风险,您可以对其进行强化:
#!/bin/bash
kdialog --password 'Enter password: ' || [ ! -z ${DIE_ON_CANCEL+x} ] && kill -9 "${PPID}"
然后,如果您想在取消时终止进程,必须像这样显式定义 DIE_ON_CANCEL
变量:
SUDO_ASKPASS='<your script>' DIE_ON_CANCEL=true sudo --askpass <your command here>
我不喜欢使用kill
,但我没有看到任何其他解决方案。有人有更好的主意吗?
关于bash - 取消 sudo askpass 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52242131/
尝试解决我在使用 git push 时遇到的问题时运行了该命令。每次我 git push 时它都会提示我,我不知道如何禁用它。 最佳答案 尝试运行: git config --system --uns
我正在尝试将我的代码推送到我的位桶存储库,但是从位桶更新后的最后几天,我必须使用 token 来推送代码。但我不知道在哪里添加 token 。 谁能告诉我android studio的整个过程。我也经
我试图通过将 SUDO_ASKPASS 导出到具有以下行的脚本来在 bash 脚本中将 kdialog 与 sudo 结合使用 kdialog --password "enter password:
我想知道如何用 Java 编写 askpass 程序。我希望能够在 Java Process 中使用 sudo,但收到一条错误消息,告诉我创建一个 askpass 程序。 我想从 JTextField
我试图在 Aptana 中推送,但出现以下错误。我已成功 pull ,但无法弄清楚为什么我的推送不起作用。 /home/jeni/apps/Aptana_Studio_3/plugins/com.ap
在 OSX Lion (10.7.x) 中,我能够编写一个 SSH 包装器,使用 ssh-askpass 输入 SSH 服务器的密码,但现在在 Mountain Lion (10.8) 中我无法使用此
我正在构建我的第一个大型 Linux 程序,我计划将其上传到 Ubuntu 软件中心,但我遇到了一个问题:我假设调用类似 system("sudo mkdir/opt/test"); 在图形程序中会自
从 CLI,我可以推/pull 到 git。但是,在 Rsudio 中,我只能 pull 而不能推。我已经为 ssh/https 端口打开了防火墙但我在尝试推送时仍然遇到以下错误: error: un
我已将我的 core.askpass 设置为一个应用程序,现在我想将其还原。我该怎么做? 最佳答案 删除它: git config --global --unset core.askpass 关于gi
ubuntu 14.04.3 LTS ansible版本:2.1.0,远程服务器上的sshport为44022 我正在使用临时方式以 sudo 用户身份运行同步模块[nopasswd 未启用] 以同步
我正在尝试在 Cocoa 应用程序中运行 SSHFS 命令。我已经将 SSHFS 命令放入 NSTask 中,但执行命令时出现一些错误: RSA host key for IP address 'xy
我在终端中运行了以下命令:git config --global core.askpass "git-gui--askpass" 现在,每当我尝试推送到 github 时,我都会收到此错误消息:“错误
这个问题在这里已经有了答案: How to fix 'sudo: no tty present and no askpass program specified' error? (29 个回答) 6
没有系统更改,每次尝试从 bundle install 安装 gem 时都会出现此错误,尽管我什至不明白为什么要调用 sudo,因为 gems 安装在本地rvm目录... sudo: no tty p
我正在运行 cap production deploy 并且在 /usr/bin/之后不断收到以下错误 sudo: no tty present and no askpass program spec
我已经安装了带有 Ubuntu 16.04、Nginx、Mariadb 和 PHP 7.0 的 lemp docker 容器,并设置了一切正常的 postfix 和基本 ssh 功能。我创建了一个具有
我试过jake与 launch 一起一点点,但是当我想部署我的node.js应用程序时,我在这个过程中得到了这个: $ ssh mydomain.com sudo stop site.WebApp-p
这个问题在这里已经有了答案: Visual studio 2017 with bitbucket, terminal prompts disabled (5 个答案) 关闭 3 年前。 我引用了很多
嘿,所以我有这个 github 操作来保存 package-lock 和 package.json 文件,如下所示: # workflow that generates the package fil
我有一个 php 页面正在尝试使用以下方法重新启动服务: $list=shell_exec('sudo/sbin/service NetworkManager restart'); 我需要编辑我的 s
我是一名优秀的程序员,十分优秀!