【问题标题】:How to give sudo command to a python file without entering password everytime如何在不每次输入密码的情况下将 sudo 命令提供给 python 文件
【发布时间】:2020-09-08 05:44:31
【问题描述】:

我创建了一个需要 sudo 权限才能运行的 python 代码。问题是它是一个自动代码,它会在计算机启动时运行,所以有没有一种方法可以让我只给它一次 sudo 权限,然后在不要求任何密码的情况下运行 sudo 权限?

我已经尝试通过运行sudo chmod +x main.py 来授予它 +x 权限(我知道这无论如何都行不通),但这并没有帮助

我的代码所做的工作是检测计算机中是否存在可移动设备(例如 pendrive)并打印该设备中存在的文件名。我的代码打印了所有内容,并且在设备已经连接时运行良好,但如果稍后连接,它会提供回溯:

Traceback (most recent call last):
  File "/home/rapidfire69/RaPiD/coding/Projects/Python/PenDrive_Thief/PenDrive_Thief.py", line 17, in <module>
    myFunction()
  File "/home/rapidfire69/RaPiD/coding/Projects/Python/PenDrive_Thief/PenDrive_Thief.py", line 7, in myFunction
    raw_files = (os.listdir(base_path+devices[0]))
PermissionError: [Errno 13] Permission denied: '/media/username/pendrive'

我的操作系统是 Ubuntu 20.04。 Python 3

请帮忙....

【问题讨论】:

  • 如何在启动时运行脚本?
  • 通过使用名为“starup application”的应用程序,默认情况下存在于ubuntu 20.04中..
  • 为了解决您的问题,您可以考虑使用systemctld,这是在 Debian/Ubuntu 上编排服务的现代方式。它很容易上车,可靠,并且还可以本地管理轮换日志。这可能是解决您的问题的绝佳选择。

标签: python python-3.x sudo ubuntu-20.04


【解决方案1】:

您可以按照here 的描述编辑您的 /etc/sudoers 文件,并为执行您的脚本的用户提供无密码 sudo 权限

 username ALL=(ALL) NOPASSWD: ALL

【讨论】:

  • 我没有详细查看该页面上链接的内容,但值得强调的是,当您编辑 sudoers 文件时,您应该使用visudo 命令。如果您不喜欢它提供的编辑器,可以通过设置 EDITOR 环境变量来更改。
  • 谢谢,这可行,但它永远不会再次向该用户询问密码,这确实不安全,有没有办法做到这一点,但只针对一个文件或脚本?
  • 看看shell脚本的SUID属性,例如这里:stackoverflow.com/questions/33565729/…
猜你喜欢
  • 2018-09-14
  • 1970-01-01
  • 2023-03-25
  • 2011-06-18
  • 1970-01-01
  • 2010-09-18
相关资源
最近更新 更多