这是因为 ubuntu 用户默认不属于 www-data 组,也不是文件的所有者,所以没有对 www-data 归属文件的写入权限。
解决这个问题只需要 1 步核心操作,就能让 ubuntu 用户永久拥有修改 www-data 文件的权限,无需每次都用 sudo:
核心方案:把 ubuntu 用户加入 www-data 组
# 将 ubuntu 用户添加到 www-data 组(-a 是追加,不会删除原有组)
sudo usermod -aG www-data ubuntu
验证是否成功添加
# 查看 ubuntu 用户所属的所有组
groups ubuntu
# 正常输出示例:ubuntu : ubuntu www-data
# 看到 www-data 就说明加入成功了
确保文件给 www-data 组分配了写权限
如果加入组后还是无法修改,大概率是文件的组权限没有开写权限,执行下面的命令批量开启:
# 进入目标目录后执行,给 www-data 组添加写权限
sudo chmod -R g+w .
原理说明:
- Linux 文件权限规则:只有文件所有者、所属组成员、root 用户能修改文件;
- 之前
ubuntu既不是所有者(www-data),也不是组成员,所以没有权限; - 加入
www-data组后,ubuntu就属于该组,再配合g+w权限,就能正常修改文件了。
另外:使用ubuntu用户登陆的SSH服务器,新建的文件用户及用户组都是默认为 ubuntu,为了统一用户及用户组,可以在指定目录下批量更改:
sudo chown -R www-data:www-data .
年历
评论(0)