【问题标题】:Turn off sudo requirements for all Python commands关闭所有 Python 命令的 sudo 要求
【发布时间】:2014-06-16 18:25:43
【问题描述】:

在使用 Python 时,我如何(在 Mac OSX 上)消除对 sudo 的需求。它可以继续进行其他所有操作 - 但我更愿意始终处于管理员模式,因此我不必总是输入 sudo。

【问题讨论】:

  • 您使用sudo 做什么easy_install?那你应该看看virtualenv
  • 您可以启用 root 帐户,但我不建议这样做。最好的方法是学习一些 shell 快捷方式,以减少键入 sudo 的需要。

标签: python macos shell terminal sudo


【解决方案1】:

这不是一个编程问题,但无论如何我都会试一试。

最安全的方法可能是使用sudo -s 开始您的终端会话,它会为您提供一个root shell。然后,您在该 shell 中执行的任何操作(包括但不限于运行 python 或 Python 脚本)都将以 root 身份访问机器上的所有内容。

作为一种大锤方法,您可以setuid Python 可执行文件并使其始终以 root 身份运行。然而,这是一个可怕的、可怕的想法。 任何 Python 脚本将拥有 root 权限!如果有人可以在您的机器上安装一些粗糙的 Python 并说服您运行它,那么他们就可以完全访问您的机器。

不过,如果你想生活在边缘,你可以试试:

sudo chown root `which python`
sudo chmod u+s `which python`

缓解这种情况的一种方法(非常轻微)是制作一个 python 解释器的副本(命名为python-root),在该副本上执行上述操作,然后为您的交互式会话调用它.脚本仍将使用库存的 python 可执行文件,而不是以 root 身份运行。当然,这并不比sudo python 少,尽管至少您不需要输入密码。对于始终需要以 root 身份运行的脚本中的 #! (shebang) 行也很方便。

【讨论】:

  • 嗯,+1 表示解决方案,-1 表示打开潘多拉魔盒,+1 表示它特别可怕。
【解决方案2】:

如果您不想为每个命令输入密码,您可以像执行任何其他程序一样使用 sudo 运行 python,在 shell 中输入sudo python。但是如果你的意思是让 python 始终以 root 权限运行,我对你没有帮助,对不起。

【讨论】:

  • 我的意思是后者——是的。