【问题标题】:Ubuntu group file permissions on creation创建时的 Ubuntu 组文件权限
【发布时间】:2025-12-12 05:55:02
【问题描述】:

我正在使用 Apache 在 Ubuntu 14.04 服务器上设置 Wordpress 站点。在此构建中,我使用 Bamboo 部署到此服务器。我有一个名为竹子的用户,该用户已添加到组 www-data 中,并且不是 sudo 用户。当我以该用户的身份创建新文件时,文件上的 chown 是 bamboo:bamboo,但我需要它是 bamboo:www-data。我这辈子都不记得我过去是怎么做到的。

文件结构如下:

/var/www/website/release-1

我已经运行了这些命令:

usermod -aG www-data bamboo
adduser bamboo www-data
chown -R bamboo:www-data /var/www/website/

我可以使用chmod g+s -R /var/www/website/ 完成这项工作,但我不想使用 (setgid)。我相当肯定我之前没有使用 setgid 就做过这个。我已经尝试了几乎所有我能想到的权限来让它工作,我忘记了什么?

【问题讨论】:

  • 竹子是www-data组的成员吗?听起来您希望竹子的默认组是 www-data。
  • 所以我昨晚尝试了这个,是的,这确实解决了这个问题,虽然它给我带来了另一个问题,但它破坏了我的部署脚本。我收到 ssh 私钥错误。如果我能修复这个错误,我可能会有解决方案。

标签: ubuntu permissions


【解决方案1】:

好的,我知道出了什么问题。为以后的人发布这个,有两种方法可以实现。

  1. 这个方法使用了setgid,我不想用这个方法,因为它添加了不需要的权限,你可以查一下什么时候什么时候不用这个方法,但它确实有效。

    sudo chmod g+s -R /var/www/website/

  2. 此方法将用户的默认组设置为 www-data。现在,这使该用户创建的所有文件都具有竹子:www-data 权限。

    sudo usermod -g www-data bamboo

但是第二种方法有一个陷阱。请注意,如果您运行此命令并使用私钥登录您的服务器。它可能会更改您的 /home/bamboo/.ssh 文件夹和密钥的权限。因此,请检查您对这些的权限。您需要以下权限。

bamboo:bamboo ~/.ssh
bamboo:bamboo ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

【讨论】: