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使用此选项: