如何使用 sudo 运行 python 脚本而不提示输入密码

如何使用 sudo 运行 python 脚本而不提示输入密码

我有一个重新启动鼠标驱动程序的 Python 脚本

import os

os.system("sudo modprobe -r psmouse")
os.system("sudo modprobe psmouse")

因为我的鼠标并不总是在启动时显示。有什么方法可以在启动时运行它而不提示输入密码?

答案1

OP 应该问“如何在启动时加载内核模块?”

编辑/etc/modules文件并在其自己的行中添加模块名称(不带.ko扩展名)。启动时,内核将尝试加载此文件中命名的所有模块。

来源:如何安装第三方模块以便其在启动时加载?

答案2

您可以编辑 sudoers 文件,以便特定用户无需密码请求即可执行特定脚本。

例子:

someusername    ALL=(ALL) NOPASSWD: /some/path/to/script/somescript

类似帖子/参考:如何在脚本中执行 sudo 命令而不要求输入密码?

答案3

如果您只想在启动时重新加载鼠标驱动器,将命令包含在 中可能会更方便/etc/rc.local。rc.local 以 root 身份运行,因此您不需要任何 sudo 命令。默认情况下,它只包含注释和 exit 0 命令。假设您有默认的 rc.local,请将其编辑为如下所示(类似):

#!/bin/sh -e
modprobe -r psmouse
modprobe psmouse
exit 0

相关内容