我编写了以下代码,完全希望在尝试运行它时引发异常。 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