gpt4 book ai didi

python - 不允许操作

转载 作者:太空狗 更新时间:2023-10-29 11:06:07 25 4
gpt4 key购买 nike

我想在 python 脚本中运行一些命令

import fcntl

KDSETLED = 0x4B32
SCR_LED = 0x01

console_fd = os.open('/dev/console', os.O_NOCTTY)
fcntl.ioctl(console_fd, KDSETLED, SCR_LED)

我已经为 /dev/console 设置了 a+rw 但是当我从普通用户运行脚本时:

fcntl.ioctl(console_fd, KDSETLED, SCR_LED) IOError: [Errno 1] Operation not permitted

如果我需要从普通用户运行该脚本,我应该怎么做?

最佳答案

我相信您需要使用 CAP_SYS_TTY_CONFIG 来执行您的脚本。或者(如果您在控制台上运行),使用您的控制 tty(例如,/dev/tty1)而不是 /dev/console 可能会起作用。

执行此操作的内核代码似乎是 drivers/tty/vt/vt_ioctl.c:

/*
* To have permissions to do most of the vt ioctls, we either have
* to be the owner of the tty, or have CAP_SYS_TTY_CONFIG.
*/
perm = 0;
if (current->signal->tty == tty || capable(CAP_SYS_TTY_CONFIG))
perm = 1;

case KDSETLED:
if (!perm)
goto eperm;
setledstate(kbd, arg);
break;

所以,看起来这绝对是您的两个选择。

关于python - 不允许操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4695599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com