是不是还在为处理不好网站的文件权限问题而日夜焦虑呢?其实刚开始在Linux服务器上建站的小伙伴们一定会对网站上不同用户的权限处理存在疑惑,那么就算为了你的发际线你也一定要看完本文。下面我们先来捋清这个问题的解决思路。
![df8b2ef78c744d380be49b1e233957d1.png](https://img-blog.csdnimg.cn/img_convert/df8b2ef78c744d380be49b1e233957d1.png)
首先我们来思考:网站都有哪些用户群体呢?
在决定权限时,首先要确定网站的用户是谁以及他们的需求,Web服务器通常面向两种用户:身份已验证用户和匿名用户。
- 身份已验证用户:这个群体在服务器上拥有账户,通常包括系统管理员、开发人员和服务账户,通过SSH或SFTP对系统进行更改。
- 匿名用户:他们是网站的访问者,通过Web服务器来请求网页。
其次创建新文件的默认权限是什么呢?
默认新文件权限:
创建新文件时,它通常会继承创建文件的组ID,默认权限值是由基本码减去umask的屏蔽位得到的,新建文件夹的基本码为777(rwxrwxrwx),新建文件的基本码为666(rw-rw-rw-),而umask的屏蔽位通常为022,所以按照上述公式一减,就得到了默认新建文件夹权限755(所有者全部权限,属组读写,其他人读写)。
通过下面的案例来看一下如何解决
有这样一个运行Apache2的Linux Web服务器,它承载着三个网站,每一个网站在/var/www中都有自己的文件夹:
![fb3dcffedfb0926571fcf6099aea04ab.png](https://img-blog.csdnimg.cn/img_convert/fb3dcffedfb0926571fcf6099aea04ab.png)
基目录/var/www由root:root拥有,Apache以www-data:www-data运行。
针对上面三个网站,可以根据不同网站的规模,分为单个用户维护和一组用户维护网站的权限处理。
- 假设eve是唯一维护contoso.com和contoso.net的用户
- 假设alice和bob是共同维护fabrikam.com的用户群体
1.单个用户维护网站
如果只有一个用户负责维护站点,将其设置为网站目录中的用户所有者,并为其授予完整的rwx权限。
Apache要给该网站提供文件,且Apache以www-data:www-data运行,因此要将www-data设置为群组所有者并授予组rx权限,用户eve属于该群组。
![a96b417353c067168b9c860bbe68ebdb.png](https://img-blog.csdnimg.cn/img_convert/a96b417353c067168b9c860bbe68ebdb.png)
如果有需要Apache可写的文件夹,则只需修改组所有者的权限值,以便www-data具有写访问权限。
![2316d69f0365f45df4515a7c8121000e.png](https://img-blog.csdnimg.cn/img_convert/2316d69f0365f45df4515a7c8121000e.png)
这种配置的好处是,能避免网站上的其他用户对服务器进行窥探,因为只有用户和群组所有者才能浏览您的网站目录。但是要注意umask命令的使用,如果在此处创建新文件,则权限值默认为755,可以运行umask 027以使新文件默认为640(rw- r-- ---)。
2.一组用户维护
如果有多个用户负责维护站点,则需要创建一个用于分配权限的组。最好为每个网站创建一个单独的组,并在该网站之后命名该组。
![9b6502c1a85530bf869a87058c6ad90f.png](https://img-blog.csdnimg.cn/img_convert/9b6502c1a85530bf869a87058c6ad90f.png)
对于拥有者而言,拥有比组更少的权限是完全合法的,因此可以使Apache成为您网站中目录和文件的用户所有者。
![ecff661c863d134f1080c9b31fa0cd90.png](https://img-blog.csdnimg.cn/img_convert/ecff661c863d134f1080c9b31fa0cd90.png)
如果有需要Apache可写的文件夹,则只需修改用户所有者的权限值,以便www-data具有写访问权限。
![e70525d5aed23542234a39b41eec68fe.png](https://img-blog.csdnimg.cn/img_convert/e70525d5aed23542234a39b41eec68fe.png)
以上就是关于网站文件或者文件夹在Linux服务器上权限的说明和部署,学好之后就可以去更好地搭建网站啦!