禁止从/ dev / tty读取

时间:2017-12-20 10:48:08

标签: python linux terminal subprocess

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

我想避免这种情况。

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

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

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

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

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

1 个答案:

答案 0 :(得分:5)

由于python3.2 Popen接受一个参数start_new_session,这将导致执行的进程在执行子进程之前通过调用setsid()从当前控制终端分离启动。 / p>

所以你需要的是用start_new_session=True

开始这个过程