当脚本不是以超级用户身份运行时,subprocess.call()如何以超级用户身份运行?

时间:2019-10-11 23:11:47

标签: python linux subprocess

我编写了以下代码,完全希望在尝试运行它时引发异常。 reboot必须以超级用户身份运行,而我期望运行此脚本的方式是在非root用户上下文中并且不使用sudo。 (我的Raspberry Pi上的用户pi

import subprocess

subprocess.call(["sudo", "reboot"])

但是,令我惊讶的是,即使在没有root用户的情况下,即使脚本在没有sudo的情况下运行,上述代码的确也确实重启了我的系统。如何运作?

编辑:

$ sudo -l
Matching Defaults entries for pi on [HOSTNAME]:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin,
    env_keep+=NO_AT_BRIDGE

User pi may run the following commands on [HOSTNAME]:
    (ALL : ALL) ALL
    (ALL) NOPASSWD: ALL

0 个答案:

没有答案
相关问题