技术员博客      html  css  js  c++  java
  • CentOS7 添加FTP用户并设置权限

    step 1

    安装配置Vsftp服务器

    一、配置防火墙,开启FTP服务器需要的端口

    CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。

    1、关闭firewall:

    systemctl stop firewalld.service#停止firewall

    systemctl disable firewalld.service#禁止firewall开机启动

    2、安装iptables防火墙

    yum install iptables-services#安装

    vi /etc/sysconfig/iptables#编辑防火墙配置文件

    # Firewall configuration written by system-config-firewall

    # Manual customization of this file is not recommended.

    *filter

    :INPUT ACCEPT [0:0]

    :FORWARD ACCEPT [0:0]

    :OUTPUT ACCEPT [0:0]

    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    -A INPUT -p icmp -j ACCEPT

    -A INPUT -i lo -j ACCEPT

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 10060:10090 -j ACCEPT

    -A INPUT -j REJECT --reject-with icmp-host-prohibited

    -A FORWARD -j REJECT --reject-with icmp-host-prohibited

    COMMIT

    :wq!#保存退出

    systemctl restart iptables.service#最后重启防火墙使配置生效

    systemctl enable iptables.service#设置防火墙开机启动

    说明:21端口是ftp服务端口;10060到10090是Vsftpd被动模式需要的端口,可自定义一段大于1024的tcp端口。

    系统运维www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接

    二、关闭SELINUX

    vi /etc/selinux/config

    #SELINUX=enforcing#注释掉

    #SELINUXTYPE=targeted#注释掉

    SELINUX=disabled#增加

    :wq!#保存退出

    setenforce 0#使配置立即生效

    三、安装vsftpd

    yum install -y vsftpd#安装vsftpd

    yum install -y psmisc net-tools systemd-devel libdb-devel perl-DBI #安装vsftpd虚拟用户配置依赖包

    systemctl start vsftpd.service#启动

    systemctl enable vsftpd.service#设置vsftpd开机启动

    四、配置vsftp服务器

    cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf-bak#备份默认配置文件

    执行以下命令进行设置

    sed -i "s/anonymous_enable=YES/anonymous_enable=NO/g" '/etc/vsftpd/vsftpd.conf'

    sed -i "s/#anon_upload_enable=YES/anon_upload_enable=NO/g" '/etc/vsftpd/vsftpd.conf'

    sed -i "s/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g" '/etc/vsftpd/vsftpd.conf'

    sed -i "s/#chown_uploads=YES/chown_uploads=NO/g" '/etc/vsftpd/vsftpd.conf'

    sed -i "s/#async_abor_enable=YES/async_abor_enable=YES/g" '/etc/vsftpd/vsftpd.conf'

    sed -i "s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g" '/etc/vsftpd/vsftpd.conf'

    sed -i "s/#ascii_download_enable=YES/ascii_download_enable=YES/g" '/etc/vsftpd/vsftpd.conf'

    sed -i "s/#ftpd_banner=Welcome to blah FTP service./ftpd_banner=Welcome to FTP service./g" '/etc/vsftpd/vsftpd.conf'

    echo -e "use_localtime=YES\nlisten_port=21\nchroot_local_user=YES\nidle_session_timeout=300

    \ndata_connection_timeout=1\nguest_enable=YES\nguest_username=vsftpd

    \nuser_config_dir=/etc/vsftpd/vconf\nvirtual_use_local_privs=YES

    \npasv_min_port=10060\npasv_max_port=10090

    \naccept_timeout=5\nconnect_timeout=1" >> /etc/vsftpd/vsftpd.conf

    五、建立虚拟用户名单文件

    touch /etc/vsftpd/virtusers

    编辑虚拟用户名单文件:(第一行账号,第二行密码,注意:不能使用root做用户名,系统保留)

    vi /etc/vsftpd/virtusers

    web1

    123456

    web2

    123456

    web3

    123456

    :wq!#保存退出

    六、生成虚拟用户数据文件

    db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db

    chmod 600 /etc/vsftpd/virtusers.db#设定PAM验证文件,并指定对虚拟用户数据库文件进行读取

    七、在/etc/pam.d/vsftpd的文件头部加入以下信息(在后面加入无效)

    修改前先备份 cp /etc/pam.d/vsftpd /etc/pam.d/vsftpdbak

    vi /etc/pam.d/vsftpd

    auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

    account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

    注意:如果系统为32位,上面改为lib,否则配置失败

    八、新建系统用户vsftpd,用户目录为/home/wwwroot, 用户登录终端设为/bin/false(即使之不能登录系统)

    useradd vsftpd -d /home/wwwroot -s /bin/false

    chown vsftpd:vsftpd /home/wwwroot -R

    chown www:www /home/wwwroot -R#如果虚拟用户的宿主用户为www,需要这样设置。

    九、建立虚拟用户个人Vsftp的配置文件

    mkdir /etc/vsftpd/vconf

    cd /etc/vsftpd/vconf

    touch web1 web2 web3#这里创建三个虚拟用户配置文件

    mkdir -p/home/wwwroot/web1/http/

    vi web1#编辑用户web1配置文件,其他的跟这个配置文件类似

    local_root=/home/wwwroot/web1/http/

    write_enable=YES

    anon_world_readable_only=NO

    anon_upload_enable=YES

    anon_mkdir_write_enable=YES

    anon_other_write_enable=YES

    allow_writeable_chroot=YES

    十、最后重启vsftpd服务器

    systemctl restart vsftpd.service

    备注:

    guest_username=vsftpd#指定虚拟用户的宿主用户(就是我们前面新建的用户)

    guest_username=www#如果ftp目录是指向网站根目录,用来上传网站程序,可以指定虚拟用户的宿主用户为nginx运行账户www,可以避免很多权限设置问题

    至此,CentOS 7.0安装配置Vsftp服务器配置完成。

    step 2 被限制路径为/home/test

    1、建用户,命令行状态下,在root用户下:

    运行命令:“useradd -d /home/test test”  //增加用户test,并制定test用户的主目录为/home/test


    运行命令:“passwd test”  //为test设置密码,运行后输入两次相同密码

    3、更改用户相应的权限设置:

    运行命令:“usermod -s /sbin/nologin test”  //限定用户test不能telnet,只能ftp

    运行命令:“usermod -s /sbin/bash test”  //用户test恢复正常

    运行命令:“usermod -d /test test”  //更改用户test的主目录为/test

    4、限制用户只能访问/home/test,不能访问其他路径

    修改/etc/vsftpd/vsftpd.conf如下:

    chroot_list_enable=YES
    # (default follows)
    chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

    编辑上面的内容

    第一行:chroot_list_enable=YES  //限制访问自身目录

    第三行:编辑vsftpd.chroot_list。根据第三行说指定的目录,找到chroot_list文件。(因主机不同,文件名也许略有不同)

    编辑vsftpd.chroot_list,将受限制的用户添加进去,每个用户名一行

    5、重启服务器

    改完配置文件,不要忘记重启vsFTPd服务器

    运行命令:/etc/init.d/vsftpd restart (centos 7以下用 /etc/init.d/vsftpd restart)

    6、如果需要允许用户修改密码,但是又没有telnet登录系统的权限:

    运行命令:“usermod -s /usr/bin/passwd test”  //用户telnet后将直接进入改密界面

  • 相关阅读:
    nginx https配置后无法访问,可能防火墙在捣鬼
    ASP.NET自定义简单分页
    Swing组件集合的事件处理(六)
    linux 获取系统信息常用命令
    [转]PAC Manager: Ubuntu 上强大的 SSH 帐号管理工具,可取代 SecureCRT_Miracle_百度空间
    基本工具集合 规格严格
    写了个Python脚本监控nginx进程
    A Quick Look at References and Constants
    file_get_contents()获取https出现这个错误Unable to find the wrapper “https” – did
    mint14上的rabbitvcs配置(在nemo中整合)
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15454432.html
Copyright © 2011-2022 技术员博客