权限:为什么我总是必须在每个命令前输入“sudo”?

权限:为什么我总是必须在每个命令前输入“sudo”?

我正在以主用户“oma”的身份编辑 www-data:www-data 拥有的 wordpress 网站中的主题文件。每次创建或编辑文件时,我都必须使用 sudo 命令,并且它会以 root:root 身份创建。实际上,我几乎必须在任何地方使用它。这很麻烦,因为我总是忘记输入这个命令,然后我的更改就无法保存。

我希望将其创建为 www-data:www-data。我甚至不明白为什么系统会提示我这样做,我以为当我将自己添加到 /etc/sudoers.d/oma 中的“admin”和“wheel”组时,我会拥有更多权限。

UNIX 权限简直让我困惑。任何帮助我都会非常感激。

答案1

  • 将自己添加到 wheel 后,您就可以使用 sudo 了。
  • 如果您是用户,通常您无法修改其他用户的文件或在他们拥有的目录中创建新文件。如果您想这样做,请使用 chmod 更改要打开的文件/目录的权限:

    chmod a+rw somename将授予所有用户对名为 somename 的文件的读写权限

  • 如果您愿意,可以使用 sudo 到“www-data”而不是“root”:

    sudo -u www-data whatever

    如果你的机器上有 su,你可以在 shell 中切换到另一个用户:

    su www-data

  • 您可以使用更改文件的所有权chown,但不要这样做,因为您的网络服务器用户可能无法读取其他用户的文件。

答案2

您遇到问题的可能性很大,因为该文件夹已归 root 所有,因此您无法修改其内容。如果是这种情况,您可能希望更改整个树的权限:sudo chown -R www-data:www-data site-directory。您可能需要随后调整 Apache 配置,以确保 Apache 仍然能够访问和读取这些文件。

向 sudoers 文件中添加所有内容只会让您使用命令获得更多功能sudo。但是,您可以通过NOPASSWD在 /etc/sudoers 中添加一个标志来安抚自己,如下所示:

%www-data  ALL=(ALL) NOPASSWD: ALL

您仍需要使用sudo,但它不会提示您输入密码。请注意这样做的安全隐患,因为 www-data 组中的每个人都将能够完全侵入您的机器。

你可能想找一个关于 Unix 文件权限的教程。它们一开始很复杂,但一旦你掌握了它们,它们就相当简单和强大。我通过快速谷歌搜索找到了这个。

相关内容