何时使用sudo python xxx.py、python xxx.py或xxx.py?
我写了一个网站,但让我困惑的是,当我运行这个网站时,首先需要启动这个应用程序。现在有三种方法可以启动:
- 用命令:sudo python xxx.py
- 用命令:python xxx.py
- 直接运行:xxx.py
我不太清楚每种方法该怎么用,而第三种方法在我电脑上目前不太好使。
1 个回答
4
sudo
是一个命令,可以让你以超级用户的权限运行程序。考虑到你提到的是一个网站,这绝对不是你想要的做法。对于一个网络应用来说,如果它需要超级用户权限,那就说明它有问题。这种做法会带来很大的安全风险,根本不应该使用。
在其他情况下,你可能会有一个 Python 程序,它需要以管理员身份运行来进行一些系统维护。在这种情况下,你可以使用 sudo
,但你绝对不应该对任何可以公开访问的东西使用它,因为这可能会被恶意利用。实际上,除了测试之外,你应该以一个权限非常有限的单独用户来运行这个网络应用(比如把他们的 shell 设置为 /dev/null
,不允许读取或写入任何不需要的东西等等)。
另外两个选项实际上是一样的(在功能上),但最后一个选项(直接执行脚本)需要:
- 在类 Unix 系统上设置可执行权限(例如
chmod +x whatever.py
) - 在第一行添加一个 shebang(例如
#! /usr/bin/python
),指向你想要运行的 Python 可执行文件(这同样只适用于类 Unix 系统)
调用 Python 来运行代码(python whatever.py
)和按照上面的步骤操作(最终得到一个可以直接用 whatever.py
调用的脚本)实际上是做同样的事情(假设 Python 文件中的 shebang 指向的 Python 可执行文件和 python
是一样的)。