Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 禁止从/dev/tty读取_Python_Linux_Terminal_Subprocess - Fatal编程技术网

Python 禁止从/dev/tty读取

Python 禁止从/dev/tty读取,python,linux,terminal,subprocess,Python,Linux,Terminal,Subprocess,像sudo这样的工具从/dev/tty读取密码 我想避免这种情况 子进程应该无法读取/dev/tty。子流程应该立即失败,而不是永远等待输入 我正在使用Python的子流程模块。如果子进程尝试从/dev/tty读取,则该子进程应失败 记住:工具sudo只是一个例子。一个花哨的sudo命令行参数并不能解决我的问题。这应该适用于所有linux命令行工具 问题:如何使任何工具在想要读取/dev/tty(通过Python的子流程模块调用)时立即失败 背景:这是一个普通的linux用户进程,而不是根进程。

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

我想避免这种情况

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

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

记住:工具
sudo
只是一个例子。一个花哨的sudo命令行参数并不能解决我的问题。这应该适用于所有linux命令行工具

问题:如何使任何工具在想要读取/dev/tty(通过Python的子流程模块调用)时立即失败

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

因为python3.2采用了一个参数
start\u new\u session
,这将导致在执行子进程之前通过调用
setId()
从当前控制终端分离执行的进程


因此,您需要做的就是以
start\u new\u session=True

开始流程,您的问题是什么?如何从
/dev/tty
中删除读取权限,或者是什么?@AndrejsCainikovs我更新了这个问题。也许在创建流程时,您需要什么?@mata感谢您,这很有效!请写下
start\u new\u session=True
作为答案,我将投票并接受它。在
sudo
的特定情况下,您可能只希望
-n
开关将sudo置于非交互模式。非常感谢。默认情况下,新版本的subx使用此选项: