• ftp建立虚拟用户实现文件上传和下载


    环境 centos7

    1.开启vsftpd服务

    2.检查vsftpd服务是否开启

    3.添加虚拟用户口令文件

    vi etc/vsftpd/vuser.txt

    4.生成虚拟用户口令认证文件

    如果没有db_load口令认证命令,则需要安装

    yum -y install db4-utils

    如果有,那么直接把文档转变为认证文件

    db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db

    5.编辑vsftpd的PAM认证文件

    vi /etc/pam.d/vsftpd

    auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser

    #注释掉其他行,加入此两行即可

    #注释掉其他行,可以禁止本地用户登录,因为本地用户登录时的验证依然依赖这个文件

    6.建立本地映射用户并设置宿主目录权限

    useradd -d /home/vftproot -s /sbin/nologin vuser

    #此用户不需要登录,只是映射用户 #用户名必须和下一步配置文件中一致

    然后查看该目录的权限

    发现权限是700,也就是说只有所有者才能rwx权限,其他人都没有权限,所以需要修改该目录下的权限,否则其他用户无法访问该目录

    7.修改配置文件

    vi /etc/vsftpd/vsftpd.conf

    加上以下配置

    #开启虚拟用户

    guest_enable=YES

    #FTP虚拟用户对应系统用户

    guest_username=vuser

    #PAM认证文件(默认存在)

    pam_service_name=vsftpd

    8.

    调整虚拟用户权限

    vi /etc/vsftpd/vsftpd.conf

    #关闭匿名用户登陆,更加安全(不影响虚拟用户登陆

    ) anonymous_enable=NO

    #给虚拟用户设定权限,允许所有虚拟用户上传

    anon_upload_enable=YES

    anon_mkdir_write_enable=YES

    anon_other_write_enable=YES

    9.重启vsftpd服务并测试
    service vsftpd restart

    在测试过程中,如果遇到了530失败,则可能是pam验证文件路径错误,可以用find命令查找pam_userdb.so验证文件,然后从新修改vsftpd文件,改为正确的路径

    而遇到远征主机关闭连接,则可能是防火墙的问题,需要运行一下命令

    关闭防火墙 iptables -F

    关闭SELinux setenforce 0(用sestatus查看如果发现selinux还是enable状态的话,则需要修改etc/selinux/config 中的enforcing 模式改为disabled, 然后重启)

    如果遇到这种情况的话,是因为如果你开启了chroot_local_user=YES这个选项把用户限制在了主目录(用户不能跳出主目录),从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了。

    果然,因为我们是该目录的所有者,拥有7权限,所以只要我们使用chown命令把所有者改成root就能登录了

     

    因为我们在该目录下没有写权限,所以是只能下载文件而不能上传文件的

    解决方法:在根目录下创建一个755所属自己的目录,在该目录下进行上传文件和下载

    成功上传!

    10.为每个虚拟用户建立自己的配置文件,单独定义权限

    之前定义了两个虚拟用户,一个是test1,一个是test2,现在来单独配置一下test1的独立配置

    (1)修改配置文件

    vi /etc/vsftpd/vsftpd.conf  

    #指定保存虚拟用户配置文件的目录  

    user_config_dir=/etc/vsftpd/vusers_dir

    (2)手工建立目录

    mkdir /etc/vsftpd/vusers_dir

    (3)为每个虚拟用户建立配置文件

    vi /etc/vsftpd/vusers_dir/test1(虚拟用户名),加入一下权限

     #允许此用户上传

     anon_upload_enable=YES

     anon_mkdir_write_enable=YES

     anon_other_write_enable=YES  

    #给虚拟用户指定独立的上传目录

     local_root=/tmp/test1

    然后登陆测试

    独立配置之后,使用test1登陆就会来到配置的目录下(/tmp/test1/)

    因为和上面的那些操作几乎是一样的,这里就不演示了,如果不能登陆成功,记得检查根目录是否具有写权限,然后改掉写权限就可以了,最重要的一点就是配置不要错了,配置文件不能存在空格,否则也会报错!

  • 相关阅读:
    Python(4)
    docker-数据管理(3)
    docker(2)
    docker(1)
    ansible的role(6)
    windows实用cmd命令总结
    Orcal数据类型总结
    Orcal设置默认插入数据的日期和时间
    linux常用关机和重启命令
    electron关于页面跳转 的问题
  • 原文地址:https://www.cnblogs.com/zhp-king/p/6766286.html
Copyright © 2020-2023  润新知