Ubuntu Web开发权限问题:编辑文件及Git操作需sudo
解决Ubuntu Web开发中的两个权限问题
嘿,我来帮你搞定这两个烦人的权限问题!下面分情况给你具体的解决方案:
1. 无需sudo编辑www-data组的文件
你现在必须用sudo才能编辑/var/www下的文件,核心原因是这些文件的归属组是www-data,而你的当前用户不在这个组里,也没有对应的写入权限。按以下步骤操作就能解决:
- 把当前用户加入www-data组:
执行这条命令,把你的用户追加到www-data组(-aG参数不会移除你已有的其他组权限):sudo usermod -aG www-data $USER - 立即刷新组权限:
执行这条命令让组变更即时生效,或者直接关闭再重新打开终端也可以:newgrp www-data - 给www-data组添加写入权限:
修改/var/www目录下所有文件和子目录的组权限,让组内用户拥有写入权限:
完成这些步骤后,你直接用sudo chmod -R g+w /var/wwwatom /var/www/index.html打开编辑就不会再提示权限不足了。
2. 修复Git commit需要sudo的问题
执行git commit必须加sudo,大概率是因为你的Git仓库目录(包括里面的.git核心子目录)的所有者是root或者其他非当前用户,导致你没有写入权限。解决方法很直接:
- 修改Git仓库的所有者为当前用户:
把命令里的仓库路径替换成你实际的Git项目路径,执行这条命令:
比如如果你的项目在sudo chown -R $USER:$USER /path/to/your/git/repo~/projects/anatole,就用:
这样当前用户就拥有了仓库的完整权限,之后执行sudo chown -R $USER:$USER ~/projects/anatolegit commit -m "new commit"就不用再加sudo了。
另外补充一下:你之前尝试的sudo chown -R www-data: anatole命令有两个小问题,一是没写完整的组名(应该是www-data:www-data或者省略组名用www-data:),二是Git仓库一般不需要归属www-data组(除非你的Web服务器需要直接操作仓库,但常规开发场景下用当前用户权限更合适)。
内容的提问来源于stack exchange,提问作者Anatole Lucet
相关产品推荐
相关产品推荐

