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

有个工作场景:

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 本身还有其他方面的安全配置,如 让用户只能访问自己的 家园目录,,,感兴趣的同学可以去研究下!

【荐】如何规划 Nginx 网站目录的权限(用户,用户组,ssh,sftp)的更多相关文章

  1. Linux下Apache网站目录读写权限的设置

    网站目录文件权限的设置对网站的安全至关重要,下面简单介绍网站目录文件权限的基本设定. 我们假设http服务器运行的用户和用户组是www,网站用户为centos,网站根目录是/home/centos/w ...

  2. 上传网站后建议执行:chown www:www -R /path/to/dir 对网站目录进行权限设置,/path/to/dir替换为你网站目录。

    上传网站后建议执行:chown www:www -R /path/to/dir 对网站目录进行权限设置,/path/to/dir替换为你网站目录.

  3. 企业场景-网站目录安全权限深度讲解及umask知识

    站点目录的文件和目录给什么权限: 默认权限是安全权限的临界点,工作中尽量给这个临界点,或者小于临界点,不要大于临界点权限. 默认权限分配的命令 umask 在linux下文件的默认权限是由umask值 ...

  4. nginx 网站目录重写

    rewrite ^/en/ /en.php last;rewrite ^/en /en.php last;

  5. Linux低权限用户记录ssh密码

    0x01 场景 现在有个攻击场景,就是你拿到了linux外网服务器的webshell,要做内网渗透前肯定要收集信息.其中可以做的一个工作是重新编译ssh来记录管理员的密码信息,信息可以用来撞其他机器的 ...

  6. linux网站目录及Apache权限的设置

    apache服务器访问权限设置禁止所有访问:Options Indexes FollowSymLinks 改为 Option None   Apache单个或多个目录禁止访问方法   这种方法通常用来 ...

  7. apache配置网站目录的读写权限

    分享下apache中配置网站目录文件权限的方法. 假设http服务器运行用户和用户组是www,网站用户为centos,网站根目录是/home/centos/web. 操作方法与步骤:1,首先,设定网站 ...

  8. centos 网站目录权限参考

    Linux下Apache网站目录读写权限的设置 网站目录文件权限的设置对网站的安全至关重要,下面简单介绍网站目录文件权限的基本设定. 我们假设http服务器运行的用户和用户组是www,网站用户为cen ...

  9. Linux系统Web网站目录和文件安全权限设置

    查看Linux文件的权限:ls -l 文件名称查看linux文件夹的权限:ls -ld 文件夹名称(所在目录)例如: drwxr-xr-x 2 root root 4096 2009-01-14 17 ...

随机推荐

  1. Linux下使用crontab定时备份日志

    上周学习了Linux,其中有使用crontab定时备份日志的内容,现把主要步骤记录如下: 首先需要备份的日志的源目录位于/opt/lampp/logs/access_log 备份到/tmp/logs下 ...

  2. Java的JDBC操作

    Java的JDBC操作 [TOC] 1.JDBC入门 1.1.什么是JDBC JDBC从物理结构上来说就是java语言访问数据库的一套接口集合,本质上是java语言根数据库之间的协议.JDBC提供一组 ...

  3. C#把 DataTable转换为Model实体

    public static List<T> GetModelFromDB<T>( DataTable dt ) { List<T> data = new List& ...

  4. Linux进程学习

    进程与进程管理: 清屏:system("clear"); //#include <signal.h> 进程环境与进程属性: 什么是进程:简单的说,进程就是程序的一次执行 ...

  5. [LeetCode] Delete Node in a BST 删除二叉搜索树中的节点

    Given a root node reference of a BST and a key, delete the node with the given key in the BST. Retur ...

  6. JavaScript 属性类型(数据属性和访问器属性)

    数据属性 数据属性包含一个数据值的位置.在这个位置可以读取和写入值.数据属性有 4 个描述其行为的特性. [[Configurable]]:表示能否通过 delete 删除属性从而重新定义属性,能否修 ...

  7. 如何用Unity创建一个的简单的HoloLens 3D程序

    注:本文提到的代码示例下载地址>How to create a Hello World 3D holographic app with Unity 之前我们有讲过一次如何在HoloLens中创建 ...

  8. Html-button和input的区别

    一.定义和用法 <button> 标签定义的是一个按钮 1.在 <button> 元素内部,您可以放置内容,比如文本或图像.这是该元素与使用 <input> 元素创 ...

  9. 【WPF】整个自定义按钮后台添加

  10. [转]ExtJs基础--Html DOM、Ext Element及Component三者之间的区别

    要学习及应用好Ext框架,必须需要理解Html DOM.Ext Element及Component三者之间的区别. 每一个HTML页面都有一个层次分明的DOM树模型,浏览器中的所有内容都有相应的DOM ...