zoukankan      html  css  js  c++  java
  • Linux(Centos)配置vsftp使用账号密码(虚拟用户)登录ftp进行文件上传和修改

    安装vsftp

     yum install vsftpd -y

    安装完成之后进入vsftp的配置文件夹

    cd /etc/vsftpd/

    文件夹内容如下

    [root@VM-0-12-centos vsftpd]# ll
    total 20
    -rw------- 1 root root  125 Oct 14 00:10 ftpusers
    -rw------- 1 root root  361 Oct 14 00:10 user_list
    -rw------- 1 root root 5116 Oct 14 00:10 vsftpd.conf
    -rwxr--r-- 1 root root  338 Oct 14 00:10 vsftpd_conf_migrate.sh

    在当前目录下创建一个用户名和密码的文件 

    文件名名称为 ftp_user.txt

    vim /etc/vsftpd/ftp_user.txt

    再ftp_user.txt文件里配置用户和密码

    yvioo
    123456
    kaifa
    12345678

    其中 

     yvioo 是ftp登录的用户名

    123456 是ftp中yvioo用户登录的密码

    kaifa 是ftp登录的用户名

    12345678 是ftp中kaifa用户登录的密码

    以此内推,可以添加多个

    然后保存退出

    wq!

    执行命令 生成虚拟数据库

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

    其中

    /etc/vsftpd/ftp_user.txt 是上面存放用户名和密码文件的绝对路径

    /etc/vsftpd/ftp_login.db  这个是生成的数据库的路径 数据库名称为 ftp_login.db

    设置生成的数据库的访问权限

    chmod 777 /etc/vsftpd/ftp_login.db 

    编辑账号的pam验证文件

    vim /etc/pam.d/vsftpd

    在最上方增加

    auth    sufficient      pam_userdb.so db=/etc/vsftpd/ftp_login
    account sufficient      pam_userdb.so db=/etc/vsftpd/ftp_login

    其中

    db=/etc/vsftpd/ftp_login 这个就是上一步生成的虚拟数据库(文件名称根据自己的来),注意:这里不用加 .db 后缀

    如下图所示

    创建一个文件夹

    mkdir /home/vsftpd

    新建一个系统用户vsftpd

    用户登录终端设为/bin/false(即不能登录系统)

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

    其中 

    vsftpd   这个就是创建的用户的用户名(这个下面配置文件里会使用)

    /home/vsftpd  就是刚才创建的文件夹

    根据需要创建修改/etc/vsftpd/vsftpd.conf,以下设置

    vim /etc/vsftpd/vsftpd.conf

    修改配置

    #禁用匿名登入

    anonymous_enable=YES 改为 anonymous_enable=NO

    #监听为专用模式

    listen=NO 改为   listen=YES

     #将ipv6监听注释掉

    listen_ipv6=YES 改为 #listen_ipv6=YES

    在配置文件底部增加

    #对用户访问只限制在主目录 不能访问其他目录(这个已经有了 但是默认是注释的 可以取消注释或者直接新增)
    chroot_local_user=YES

    #启用guest
    guest_enable=YES


    #使用虚拟账号形式(vsftpd 就是我们上面创建的用户的用户名)
    guest_username=vsftpd


    #虚拟账号配置目录(这个还没创建 我们下面再进行创建,先这样写)
    user_config_dir=/etc/vsftpd/user_conf


    #对vsftpd的用户使用pam认证

    (这个就是我们上面改的pam验证文件的文件名,这个默认已经有了,所以不用添加, 没有的话再添加)
    pam_service_name=vsftpd

    #允许本地用户登录(这个默认的也有了,没有的话添加上)

    local_enable=YES

    然后保存退出

    接着创建虚拟账号配置目录

    mkdir /etc/vsftpd/user_conf

    进入文件夹

    cd /etc/vsftpd/user_conf/

    创建文件

    vim /etc/vsftpd/user_config/yvioo

    其中

     yvioo 就是我们上面ftp_user.txt中配置的ftp的账号的用户名

    (这里创建的文件名要对应上,如果有多个ftp用户就创建多个ftp文件对应的用户名文件,然后在里面设置权限即可)

    然后添加

    write_enable=YES
    anon_world_readable_only=NO
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    local_root=/data/www

    说明如下

    #是否允许登陆用户有写权限。属于全局设置,默认值为YES。
    write_enable=YES
    #如果设为YES,则允许匿名登入者下载可阅读的档案(可以下载到本机阅读,不能直接在FTP服务器中打开阅读)。默认值为YES。
    anon_world_readable_only=NO
    #如果设为YES,则允许匿名登入者有上传文件(非目录)的权限,只有在write_enable=YES时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为NO。
    anon_upload_enable=YES
    #如果设为YES,则允许匿名登入者有新增目录的权限,只有在write_enable=YES时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为NO。
    anon_mkdir_write_enable=YES
    #如果设为YES,则允许匿名登入者更多于上传或者建立目录之外的权限,譬如删除或者重命名。(如果 anon_upload_enable=NO,则匿名用户不能上传文件,但可以删除或者重命名已经存在的文件;如果 anon_mkdir_write_enable=NO,则匿名用户不能上传或者新建文件夹,但可以删除或者重命名已经存在的文件夹。)默认值为NO。
    anon_other_write_enable=YES
    #当本地用户登入时,将被更换到定义的目录下。默认值为各用户的家目录。可以自己修改
    local_root=/data/www

    可以根据自己的需要添加,如果想拥有所有权限 就都加入

    然后保存退出

    给要远程的目录local_root添加权限

    chmod 777 /data/www/

    接着重启服务

    #启动
    service vsftpd start
    #重启
    service vsftpd restart

    然后就可以用软件,使用用户名:yvioo   密码:123456 访问远程文件了

    如果出现

    连接失败
    OOPS: vsftpd: refusing to run with writable root inside chroot()

    出现这个报错

    这是因为从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

    我们在修改配置文件 在底部增加

    allow_writeable_chroot=YES

    然后重启即可

    -----------------------有任何问题可以在评论区评论,也可以私信我,我看到的话会进行回复,欢迎大家指教------------------------ (蓝奏云官网有些地址失效了,需要把请求地址lanzous改成lanzoux才可以)
  • 相关阅读:
    第二次冲刺spring会议(第一次会议)
    团队项目(4.15站立会议)
    团队项目(4.14站立会议)
    VB中的GDI编程-1 设备环境DC
    合并多个表格数据的代码
    随机跳转页面之使用VBA公共变量
    快速找到Office应用程序安装路径
    CSS3学习笔记(3)-CSS3边框
    CSS3学习笔记(2)-CSS盒子模型
    测试一下js是否可用
  • 原文地址:https://www.cnblogs.com/pxblog/p/14340205.html
Copyright © 2011-2022 走看看