如何配置sudo在终端通过curses界面实现密码输入(替代GUI弹窗)
如何配置sudo在终端通过curses界面实现密码输入(替代GUI弹窗)
嘿,这个需求我之前刚好折腾过!想要让sudo用终端里那种类似pinentry的curses风格密码输入框代替烦人的GUI弹窗,其实几步就能搞定,我给你捋清楚:
首先先装个合适的curses密码工具,最常用的就是
pinentry-curses,大部分发行版都能直接装:- Debian/Ubuntu系:
sudo apt install pinentry-curses - RHEL/CentOS/Fedora系:
sudo dnf install pinentry-curses
- Debian/Ubuntu系:
临时测试(不想改永久配置的话):
先在终端里设置环境变量,指定sudo要用的密码弹窗程序:export SUDO_ASKPASS=/usr/bin/pinentry-curses
之后用sudo的时候加上-A参数,比如sudo -A systemctl restart nginx,这时候终端里就会弹出curses风格的密码输入框了,完全在终端里操作,不会跳GUI。永久配置(一劳永逸):
用visudo命令编辑sudoers配置文件(一定要用visudo,直接编辑容易搞坏配置导致sudo用不了),在文件里加这么一行:Defaults askpass=/usr/bin/pinentry-curses
保存退出后,以后不管你用不用-A参数,sudo都会自动调用pinentry-curses在终端里显示密码框,再也不会弹GUI窗口了。额外小技巧:
要是偶尔还是弹出GUI版的pinentry,那可能是pinentry默认用了GUI版本。你可以直接运行pinentry,在弹出的界面里选「Set Default」,然后指定curses作为默认程序,这样所有调用pinentry的工具都会用终端版了。
备注:内容来源于stack exchange,提问作者xorgzz
相关产品推荐
相关产品推荐

