不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2016-12-29 08:57  分类:Apache/Nginx 

从上一篇文章:PHP网站(nginx、php-fpm、mysql) 用户权限解析,可以学习了解到,nginx 和 php-fpm 的用户是如何运作的。

有个工作场景:

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

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

3、网站目录参考如下:

/alidata/www/test.cnblogs.com

/alidata/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 /alidata/www/www.cnblogs.com
umask 0000
chmod -R 750 /alidata/www/www.cnblogs.com
chmod -R 760 /alidata/www/www.cnblogs.com/data
chmod -R 770 /alidata/www/www.cnblogs.com/data/cache/view 
chmod -R 760 /alidata/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 /alidata/www/test.cnblogs.com 
umask 0000 
chmod -R 750 /alidata/www/test.cnblogs.com 
chmod -R 760 /alidata/www/test.cnblogs.com/data 
chmod -R 770 /alidata/www/test.cnblogs.com/data/cache/view 
chmod -R 760 /alidata/www/test.cnblogs.com/write2.txt

 

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