何时使用sudo python xxx.py、python xxx.py或xxx.py?

2 投票
1 回答
4359 浏览
提问于 2025-04-16 04:36

我写了一个网站,但让我困惑的是,当我运行这个网站时,首先需要启动这个应用程序。现在有三种方法可以启动:

  1. 用命令:sudo python xxx.py
  2. 用命令:python xxx.py
  3. 直接运行:xxx.py

我不太清楚每种方法该怎么用,而第三种方法在我电脑上目前不太好使。

1 个回答

4

sudo 是一个命令,可以让你以超级用户的权限运行程序。考虑到你提到的是一个网站,这绝对不是你想要的做法。对于一个网络应用来说,如果它需要超级用户权限,那就说明它有问题。这种做法会带来很大的安全风险,根本不应该使用。

在其他情况下,你可能会有一个 Python 程序,它需要以管理员身份运行来进行一些系统维护。在这种情况下,你可以使用 sudo,但你绝对不应该对任何可以公开访问的东西使用它,因为这可能会被恶意利用。实际上,除了测试之外,你应该以一个权限非常有限的单独用户来运行这个网络应用(比如把他们的 shell 设置为 /dev/null,不允许读取或写入任何不需要的东西等等)。

另外两个选项实际上是一样的(在功能上),但最后一个选项(直接执行脚本)需要:

  1. 在类 Unix 系统上设置可执行权限(例如 chmod +x whatever.py
  2. 在第一行添加一个 shebang(例如 #! /usr/bin/python),指向你想要运行的 Python 可执行文件(这同样只适用于类 Unix 系统)

调用 Python 来运行代码(python whatever.py)和按照上面的步骤操作(最终得到一个可以直接用 whatever.py 调用的脚本)实际上是做同样的事情(假设 Python 文件中的 shebang 指向的 Python 可执行文件和 python 是一样的)。

撰写回答