禁止从/ dev / tty读取

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了禁止从/ dev / tty读取相关的知识,希望对你有一定的参考价值。

sudo这样的工具从/ dev / tty读取密码。

我想避免这个。

子进程不应该能够读取/ dev / tty。子进程应立即失败,而不是等待输入永远。

我正在使用Python的subprocess模块。如果子进程尝试从/ dev / tty读取,则该进程应该失败。

记住:工具sudo只是一个例子。 sudo的一个奇特的命令行参数并没有解决我的问题。这适用于所有linux命令行工具。

问题:如果想要从/ dev / tty读取任何工具(通过Python的子进程模块调用),如何使任何工具失败?

背景:这是一个普通的linux用户进程,而不是root用户。

答案

由于python3.2 Popen采用了一个参数start_new_session,它将通过在执行子进程之前调用setsid()来启动从当前控制终端分离的已执行进程。

所以你需要的是用start_new_session=True开始这个过程

以上是关于禁止从/ dev / tty读取的主要内容,如果未能解决你的问题,请参考以下文章

5.2与终端进行对话

PHP CLI:如何从 TTY 读取单个字符的输入(无需等待回车键)?

开发板调试串口

/dev/tty /dev/pts

TTY体系中设备节点的差别

TTY体系中设备节点的差别