• home > OS > Linux > Devops >

    前端文件自动上传linux服务器,nginx文件权限设置—linux操作手

    Author:zhoulujun Date:

    前端打包,使用webpack-sftp-client自动上传打包文件,如果不使用nginx用户上传,默认是403没有权限访问,除非设置nginx用户为root,否则就要用nginx用户上传,但是默认nginx用户是没有登录,上传权限。

    前端打包,使用webpack-sftp-client自动上传打包文件,配置如下

    new WebpackSftpClient({
        port: '22',
        host: 'zhoulujun.cn',
        username: 'zhou',
        password: '*******',
        path: './dist/',//本地上传目录
        remotePath: '/home/wwwroot/site/',//服务器目标目录
        verbose: true
      })

    但是,nginx使用nginx用户再跑,而上传文件不是nginx用户,所以肯定访问不到,在内网中测试,直接把nginx改为root用户跑就好,

    #user nginx;

    user root;

    nginx用户,一般安装nginx或者环境自己已经内置,比如新增nginx

    useradd: user 'nginx' already exists

    但是,如果用nginx登录,会发现

    This account is currently not available nginx

    修改/etc/passwd 文件,

    # cat /etc/passwd | grep nginx

    发现它的shell是“/sbin /nologin”,需要将起改成“/bin/bash

    nginx:x:997:994:Nginx web server:/var/lib/nginx:/bin/bash

    然后,发现nginx可以登录,修改nginx密码

    passwd nginx

    设置密码后,发现用nginx登录,无法上传文件

    所以可以修改nginx的文件访问权限

    修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:

    ## Allow root to run any commands anywhere

    root    ALL=(ALL)     ALL

    nginx  ALL=(ALL)     ALL

    或许把nginx加入root用户组

    vim /etc/group



    文件权限设置:

    比如个人网站,全部设置755,644 肯定都不行。需要分开设置

    • find /path -type f -exec chmod 644 {} ; //设置文件权限为644

    • find /path -type d -exec chmod 755 {} ; //设置目录权限为755

    phpcms目录权限设置:可以有效防范黑客上传木马文件。




    转载本站文章《前端文件自动上传linux服务器,nginx文件权限设置—linux操作手》,
    请注明出处:https://www.zhoulujun.cn/html/OS/Linux/LinuxDevops/8138.html