我正在以主用户“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 文件权限的教程。它们一开始很复杂,但一旦你掌握了它们,它们就相当简单和强大。我通过快速谷歌搜索找到了这个。