首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在dmenu中隐藏密码

在dmenu中隐藏密码
EN

Unix & Linux用户
提问于 2018-08-21 04:06:55
回答 3查看 1.9K关注 0票数 1

我是菜谱新手。我正在尝试运行那些需要sudo许可的程序。我跟踪了此链接。所以我在我的./dpass文件夹中有脚本bin,上面写着:

代码语言:javascript
复制
#!/bin/bash
dmenu -p "$1" <&- && echo

我还运行了以下命令:

代码语言:javascript
复制
$ export SUDO_ASKPASS=/home/username/bin/dpass

现在,我在我的bin文件夹中有了一个名为shutdown的脚本。上面写着:

代码语言:javascript
复制
#!/bin/bash
sudo -A shutdown -h now

当我尝试在dmenu中运行它时,它确实要求我提供密码,但问题是,当我键入密码时,密码并不隐藏。我觉得这很不安全,因为任何人都能看到我的密码。在dmenu中有隐藏密码的方法吗?

EN

回答 3

Unix & Linux用户

发布于 2018-08-21 04:35:03

尝试从对&& echo的调用结束时删除dmenu

代码语言:javascript
复制
#!/bin/bash
dmenu -p "$1" <&-

这将禁用用户在dmenu中键入的内容的回显。这个方法在这个名为:从dmenu输入密码.的博客文章中有介绍。

节选

$ cat dpass #!/bin/sh # shellcheck disable=2046 caller= $(ps -o comm= -p $(ps -o ppid= -p $$))“prompt="${1:-}”promptfg=black promptbg=red hidden=white font=“解放桑斯-20:粗体”d菜单-p "$prompt“-fn”-fn\\en19#“”<&&cat;-

  1. 如果没有传递args,则将提示(红色部分)设置为调用应用程序。因此,用户总是得到某种提示。
  2. 它移除尾随的&& echo语句,因此它可以在其他密码处理程序上工作。
票数 2
EN

Unix & Linux用户

发布于 2020-07-03 07:39:10

熔断器队的启发下,我编写了一个名为stprompt的脚本:

代码语言:javascript
复制
#!/bin/bash

prompt="$1"
answer=$(st -o "-" -g 100x5 -c st-prompt sh -c "echo -n '$prompt: '; read -s ANSWER; echo \$ANSWER")
echo "${answer#*: }" | tr -d '\r'

此脚本提示用户,隐藏输入,并输出响应。

对于您的具体情况,您可以以这种方式使用此脚本:

代码语言:javascript
复制
sudopgm==$(echo "${options[@]}" | dmenu -i -p 'Programs that need sudo: ')
SUDO_ASKPASS=$(stprompt "sudo pass") sudo -A $sudopgm

还有关于如何在dotfiles自述中使用C6的更多信息,以及C6脚本中的示例用法。

正如Fuseteam所说,st是一个终点站。你可以用你最喜欢的终端来代替它。

票数 1
EN

Unix & Linux用户

发布于 2020-04-03 16:01:18

一个工作可能是一个名为say dterm的脚本,该脚本运行如下:

代码语言:javascript
复制
#!/bin/bash
command="$@";st -- $command

这样,当您运行dterm sudo command时,它将弹出一个用于输入密码的终端

作为额外的奖励,您还可以通过dmenu运行任何终端应用程序。

附注:st是一个终端,它可以替换为任何接受-e或-参数的终端。

p.p.s .假设您可以通过dmenu执行您的脚本

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/463773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档