Linux Web服务器操作文件发现没权限怎么办?
如果你需要管理web服务器,你一定遇到过这样的问题:
- 新建了一个目录给新网站用,可是Nginx/PHP应用部署后 你发现没权限写入这个目录。
- root账户操作时复制进/var/www的文件不能用Web应用删掉
- 自己新建的账户上传的应用总是没法运行
还有诸多类似的错误,本质上都是权限不规范导致的。
让我们看看一个正常的网站目录权限是怎么样的:
xfox@racknerd-14a7c8:~$ ls -l /var/www/xfox.fun/
total 100
drwxrwxr-x 5 www-data www-data 4096 Jul 4 2023 admin
-rwxrwxr-x 1 www-data www-data 1667 Jul 4 2023 config.inc.php
-rwxrwxr-x 1 www-data www-data 708 Jun 7 2023 index.php
drwxrwxr-x 4 www-data www-data 4096 Jul 4 2023 tools
drwxrwxr-x 6 www-data www-data 4096 Jul 4 2023 usr
drwxrwxr-x 6 www-data www-data 4096 Jul 4 2023 var
我们可以发现,如上的一个用Nginx+PHP 部署的Typecho 站点目录是归www-data
这个用户及同名用户组所有的。
实际上:www-data就是Nginx/Apache等常用Web服务使用的特定user/group,目的是给予网站尽可能低的权限。
正确的操作方式既不是粗暴的的用root用户往里站点路径硬写,也不是sudo 提权强行操作。
你应该将自己当前使用的管理账户(例如xfox )添加到 www-data 用户组中。
我们可以执行如下命令完成这一操作:sudo usermod -aG www-data $USER
接着重新登录服务器使用groups命令即可确定当前用户所在的用户组
xfox@racknerd-14a7c8:~$ groups
xfox sudo www-data
确认无误就可以愉快的玩耍了!