• centos 7 ftp


    来自: https://www.cnblogs.com/xuzhengzong/p/8645908.html

    一、目的,新建一个用户 test2,登录ftp,它只有自己的主目录权限,其他同级和上级目录没有权限

    二、ftp安装、配置

    yum -y install vsftpd  //通过yum来安装vsftpd
    chkconfig vsftpd on   //设置为开机启动
    vi /etc/vsftpd/vsftpd.conf #设置配置文件  

    配置:
    anonymous_enable=YES    #设置是否允许匿名用户登录 
    local_enable=YES        #设置是否允许本地用户登录 
    local_root=/home        #设置本地用户的根目录 
    write_enable=YES        #是否允许用户有写权限 
    local_umask=022        #设置本地用户创建文件时的umask值 
    anon_upload_enable=YES    #设置是否允许匿名用户上传文件 
    anon_other_write_enable=YES    #设置匿名用户是否有修改的权限 
    anon_world_readable_only=YES    #当为YES时,文件的其他人必须有读的权限才允许匿名用户下载,单单所有人为ftp且有读权限是无法下载的,必须其他人也有读权限,才允许下载 
    download_enbale=YES    #是否允许下载 
    chown_upload=YES        #设置匿名用户上传文件后修改文件的所有者 
    chown_username=ftpuser    #与上面选项连用,表示修改后的所有者为ftpuser 
    ascii_upload_enable=YES    #设置是否允许使用ASCII模式上传文件 
    ascii_download_enable=YES    #设置是否允许用ASCII模式下载文件 

    chroot_local_user=YES        #设置是否锁定本地用户在自己的主目录中(将前面#去掉!其他选项可不动

    当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误:
    500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
    从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
    要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下面一项:
    allow_writeable_chroot=YES

    chroot_list_enable=YES        #设置是否将用户锁定在自己的主目录中 
    chroot_list_file=/etc/vsftpd/chroot_list    #定义哪些用户将会锁定在自己的主目录中 (去/etc/vsftpd/chroot_list文件增加用户名,一行一个
    userlist_enable=YES    #当为YES时表示由userlist_file文件中指定的用户才能登录ftp服务器 
    userlist_file=/etc/vsftpd/user_list    #当userlist_enable为YES时才生效

     开始添加目标用户,并为其设置主目录

    复制代码
    useradd -d 目录 -m 目录 用户    //-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
    
    passwd 用户名   //设置密码
    
    chmod 755 目录    //以root的视角去修改当前目录的权限
    
    chown -R ftp用户名:组名 目录  //组名可不写,修改目录所属者
    
    >>service vsftpd restart    //重启ftp
    复制代码

    配置完成,设置防火墙 :

    vi /etc/sysconfig/iptables-config
    
    修改
    IPTABLES_MODULES="ip_conntrack_ftp"

    开放21端口:

    vi /etc/sysconfig/iptables
    
    添加
     -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

    重启  service vsftpd restart

    如果此时还不能上传文件权限,关闭SELinux:

    > vi /etc/sysconfig/selinux ,修改为:SELINUX=disabled

    最终效果:(用户根本都看不到其他目录,只能看到自己的 -d 目录)

  • 相关阅读:
    [RTT例程练习] 3.1 动态内存管理之rt_malloc和rt_free
    [RTT例程练习] 3.3 静态内存管理,内存池mempool
    [RTT例程练习] 6.2 在 Finsh 中运行自定义函数
    [RTT例程练习] 2.9 事件机制event
    [SCons 有点翻译的scons学习] 3. 生成和使用库
    [RTT例程练习] 3.2 动态内存管理之rt_realloc和free
    vim 启动 python的自动补全
    [RTT例程练习] 6.1 Finsh 的基本使用
    ELF文件重定位
    [RTT例程练习] 4.2 动态定时器
  • 原文地址:https://www.cnblogs.com/lihan829/p/11218128.html
Copyright © 2020-2023  润新知