zoukankan      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 listen_port=21 chroot_local_user=YES idle_session_timeout=300

    data_connection_timeout=1 guest_enable=YES guest_username=vsftpd

    user_config_dir=/etc/vsftpd/vconf virtual_use_local_privs=YES

    pasv_min_port=10060 pasv_max_port=10090

    accept_timeout=5 connect_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后将直接进入改密界面

  • 相关阅读:
    SQL Server, Timeout expired.all pooled connections were in use and max pool size was reached
    javascript 事件调用顺序
    Best Practices for Speeding Up Your Web Site
    C语言程序设计 使用VC6绿色版
    破解SQL Prompt 3.9的几步操作
    Master page Path (MasterPage 路径)
    几个小型数据库的比较
    CSS+DIV 完美实现垂直居中的方法
    由Response.Redirect引发的"Thread was being aborted. "异常的处理方法
    Adsutil.vbs 在脚本攻击中的妙用
  • 原文地址:https://www.cnblogs.com/lxwphp/p/8949942.html
Copyright © 2011-2022 走看看