您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

无法使用termios.TIOCSTI伪造终端输入

无法使用termios.TIOCSTI伪造终端输入

TIOCSTI一个ioctl(在中进行了记录tty_ioctl(4)),而不是终端设置,因此您不能使用tcsetattr()-您需要将伪输入的每个字符输入ioctl()。以前从未需要从Python进行过ioctl操作,但是以下操作似乎可以ls在运行Bash 的其他终端(指定为参数,例如 / dev / pts / 13 )中运行:

import fcntl
import sys
import termios

with open(sys.argv[1], 'w') as fd:
    for c in "ls\n":
        fcntl.ioctl(fd, termios.TIOCSTI, c)

TIOCSTI``CAP_SYS_ADMIN顺便要求root特权(或更具体地讲,但实际上通常是相同的)-请参阅capabilities(7)

其他 2022/1/1 18:16:03 有435人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶