python - 当我们需要使用 sudo python xxx.py 或只是 python xxx.py 或 xxx.py

标签 python sudo env

我写了一个网站,让我困惑的是当我运行该网站时,首先我需要启动应用程序, 所以有3种方法:

  1. sudo python xxx.py
  2. python xxx.py
  3. xxx.py

我不太清楚如何使用它们,NO.3方法目前在我的电脑上效果不好

最佳答案

sudo 将以 super 用户权限运行应用程序。考虑到您指的是一个网站,这当然不是您想要做的。 (对于网络应用程序来说,如果它需要 super 用户权限,那么它就被破坏了。这对于考虑实际使用而言,安全风险太大了。)

在其他情况下,您可能有一个 python 程序,该程序执行某种系统维护并需要以 root 身份运行。在这种情况下,您可以使用 sudo,但您永远都不想对可公开访问且可能被利用的内容执行此操作。事实上,对于测试以外的任何事情,您可能应该以具有非常有限的访问权限的单独用户身份运行 Web 应用程序(例如,将其 shell 设置为 /dev/null,没有对任何内容的读或写访问权限)他们不需要,等等...)。

另外两个实际上是相同的(就它们的作用而言),但最后一个选项(直接执行脚本)需要:

  1. 要设置的可执行位(在 unix-y 系统)(例如 chmod +xwhatever.py)
  2. 一个shebang在第一行(例如 #! /usr/bin/python) 指向 你想要的 python 可执行文件 运行(同样,这仅适用于 unix-y 系统)

调用 python 来运行代码 (pythonwhatever.py) 并按照上述步骤操作(生成一个可以直接使用 whatever.py 调用的脚本) 做完全相同的事情(假设 python 文件中的 shebang 指向与“python”相同的 python 可执行文件,无论如何......)

关于python - 当我们需要使用 sudo python xxx.py 或只是 python xxx.py 或 xxx.py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3795942/

相关文章:

python - 如何将 Pandas 列多索引名称作为列表获取

bash - 如何在没有进一步用户交互的情况下使用 sudo 在单独的终端中运行命令

git - 以 root 身份提交时如何使用我的个人 git 配置?

regex - 带有 BRE '.' 的 sed(在 osx Snow Leopard 上)不匹配字符 > ascii 127

python - anaconda virtual env 从全局导入模块

python - 如何在 matplotlib 中并排绘制堆叠直方图?

Python 设置禁用路径长度限制的优点和缺点?

python - 从具有重复键的字典列表中创建具有唯一键的字典列表

php - 无法从 PHP 执行 Bash 脚本

javascript - 从 master 访问 worker 环境(Node.js 集群)