linux – 为什么密码输入在管道sudo命令中工作?
发布时间:2020-12-13 18:52:25 所属栏目:Linux 来源:网络整理
导读:如果我做: sudo cat /etc/resolv.conf | less 它会提示我输入密码,即使较少(可能)需要密码.什么fd是显示的密码提示,它是如何获得输入的? 解决方法 实际上,典型的sudo调用根本不会从stdin读取密码.相反,sudo将直接访问控制终端(tty或pty,通过/ dev / tty特
如果我做:
sudo cat /etc/resolv.conf | less 它会提示我输入密码,即使较少(可能)需要密码.什么fd是显示的密码提示,它是如何获得输入的? 解决方法
实际上,典型的sudo调用根本不会从stdin读取密码.相反,sudo将直接访问控制终端(tty或pty,通过/ dev / tty特殊文件)并输出提示并直接读取字符.这可以在sudo源代码中的tgetpass.c文件中看到.
还有一些其他方案: >如果指定了askpass程序,例如在-A param中,将调用该程序. >如果禁用密码echo(默认情况下,由sudoers中的visiblepw标志控制),sudo将报告错误:no tty present并且没有指定askpass程序 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |