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

时间:2010-09-25 23:16:11

标签: python sudo env

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

  1. sudo python xxx.py
  2. python xxx.py
  3. xxx.py
  4. 我没有清楚如何使用它们,目前我电脑中的NO.3方法效果不佳

1 个答案:

答案 0 :(得分:4)

sudo将以超级用户权限运行该应用程序。考虑到你指的是一个网站,这肯定是你想做什么。 (对于一个webapp,如果它需要超级用户权限,它就会被破坏。这远远超过考虑实际使用的安全风险。)

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

其他两个实际上是相同的(除了它们的作用),但最后一个选项(直接执行脚本)将需要:

  1. 要设置的可执行位(打开 unix-y systems)(例如chmod +x whatever.py
  2. 指向第一行的shebang(例如#! /usr/bin/python) python可执行你想要的 运行(再次,这仅适用于unix-y系统)
  3. 调用python运行代码(python whatever.py)并执行上述步骤(生成一个可以直接使用whatever.py调用的脚本) 做同样的事情(假设python文件中的shebang指向与“python”相同的python可执行文件,无论如何......)