搭建LNMP环境(八):网站目录权限问题

admin2022-12-29  141

Nginx要访问网站html目录,FTP也要访问网站html目录,Nginx访问就需要将目录所属用户设为www,FTP访问就要将目录所属用户设为ftp,设为www的时候ftp没办法上传文件,赋予了写入权限就可以上传文件了,但是删除文件和文夹有点问题,可以删除html目录下子目录中的文件,却删除不了html目录下的子目录。

 

通过度娘查到的资料显示,可以将html目录设为ftp,然后更改Nginx的配置文件,将用户www也改为ftp就没有问题了。

 

但个人觉得这个只治标不治本。然后又通过度娘查了一下,关于赋权还是需要有些规划,这个问题需要深入思考一下。

 

把大佬写的文章记录下来,参考参考。

 

 

有个工作场景:

 

1、公司的一台 CentOS 服务器上运行了好几个网站,每个网站又是由不同的团队在维护,如果确保 ftp 更新文件的时候,不更新错,不乱窜。如何避免 本来给A网站更新文件,结果上传到B网站了等等乱象;

 

2、只用 CentOS 自带的 sftp,不打算安装 vsftpd 等第三方 ftp 软件;

 

3、网站目录参考如下:

/usr/local/nginx/www/test.cnblogs.com

/usr/local/nginx/www/www.cnblogs.com

 

解决方案:

 

1、网站用户(nginx,php-fpm,ftp的用户)都归属到 www 用户组;

 

2、nginx,php-fpm 都用用户 www;

 

3、为每个网站新建一个独立 ftp 用户;

 

4、每个网站,ftp 用户有 读、写、执行 的权限,php-fpm 用户只有 读、执行 的权限(个别缓存 文件/文件夹 开通写的权限);

 

5、参考代码如下:

####################################################

### 新建 Nginx、PHP-FPM 用户及用户组 www:www,不可登录

####################################################
# 新建用户组 www(所有的网站相关的用户,统一放到 www 用户组)

groupadd www
# 新建用户

useradd www -g www -s /usr/sbin/nologin
##################################################

### 修改网站 www.cnblogs.com 目录权限

##################################################
# 新建账号

useradd ftp_cnblogs_www -g www

passwd ftp_cnblogs_www # 密码为: ftp_cnblogs_www_1483065485
# 修改权限

chown -R ftp_cnblogs_www:www /usr/local/nginx/www/www.cnblogs.com

umask 0000

chmod -R 750 /usr/local/nginx/www/www.cnblogs.com

chmod -R 760 /usr/local/nginx/www/www.cnblogs.com/data

chmod -R 770 /usr/local/nginx/www/www.cnblogs.com/data/cache/view

chmod -R 760 /usr/local/nginx/www/www.cnblogs.com/write2.txt
##################################################

### 修改网站 test.cnblogs.com 目录权限

##################################################
# 新建账号

useradd ftp_cnblogs_test -g www

passwd ftp_cnblogs_test # 密码为: ftp_cnblogs_test_1483065514
# 修改权限

chown -R ftp_cnblogs_test:www /usr/local/nginx/www/test.cnblogs.com

umask 0000

chmod -R 750 /usr/local/nginx/www/test.cnblogs.com

chmod -R 760 /usr/local/nginx/www/test.cnblogs.com/data

chmod -R 770 /usr/local/nginx/www/test.cnblogs.com/data/cache/view

chmod -R 760 /usr/local/nginx/www/test.cnblogs.com/write2.txt

注意:sftp 本身还有其他方面的安全配置,如让用户只能访问自己的家园目录,感兴趣的同学可以去研究下!

 

在部署Wellcms的时候,先是检测环境和权限,有几个文件夹没有写入权限,将这几个文件夹设为755的权限之后正常了,在安装的最后一步各种报错,应该还是权限的问题,又将这些报错的文件夹设为777权限,反反复复的弄了几次,也不知道怎么就安装成功了。

 

后期使用还不知道有没有什么问题。

 

如果有问题估计又需要把服务器的系统重装,然后把自建环境从头到尾再操作一遍,目录和权限问题也要重新规划一下才好。

转载请注明原文地址:http://www.198484.com/?read-46.html
0

最新回复(0)