zoukankan      html  css  js  c++  java
  • ubuntu 16 搭建只能上传不可下载删除ftp服务

    安装 VSFTPD,(建议使用FileZill测试,报错能看到原因)

    如果使用window文件管理连接,要注意下图的设置

    使用 apt-get 安装 vsftpd

    sudo apt-get install vsftpd -y
    

    安装完成后 VSFTPD 会自动启动,通过 netstat 命令可以看到系统已经监听了 21 端口

    sudo netstat -nltp | grep 21
    

    如果没有启动,可以手动开启 VSFTPD 服务:

    sudo systemctl start vsftpd.service
    

    配置用户访问目录,新建用户主目录

    sudo mkdir /home/she
    

    执行完后,在这里 /home/she就能看到新建的文件夹 she了。

    创建登录欢迎文件

    sudo touch /home/she/welcome.txt
    

    新建用户 she 并设置密码,创建一个用户 she

    sudo useradd -d /home/she -s /bin/bash she
    

    为用户 she 设置密码

    sudo passwd she
    

    删除掉 pam.d 中 vsftpd,因为该配置文件会导致使用用户名登录 ftp 失败

    sudo rm /etc/pam.d/vsftpd
    

    限制用户 she只能通过 FTP 访问服务器,而不能直接登录服务器:

    sudo usermod -s /sbin/nologin she
    

    修改 vsftpd 配置

    sudo chmod a+w /etc/vsftpd.conf
    sudo vim /etc/vsftpd.conf
    

    修改 /etc/vsftpd.conf 文件中的配置(直接将如下配置添加到配置文件最下方):

    # 限制用户对主目录以外目录访问
    chroot_local_user=YES
    
    # 指定一个 userlist 存放允许访问 ftp 的用户列表
    userlist_deny=NO
    userlist_enable=YES
    
    # 记录允许访问 ftp 用户列表
    userlist_file=/etc/vsftpd.user_list
    
    # 不配置可能导致莫名的530问题
    seccomp_sandbox=NO
    
    # 允许文件上传
    write_enable=YES
    #不允许下载
    download_enable=NO
    
    #修改用户上传文件的所属主
    chown_uploads=YES
    chown_username=root
    
    # 使用utf8编码
    utf8_filesystem=YES
    
    #限制用户权限的目录
    user_config_dir=/etc/vsftpd/vsftpd_user_conf
    

    新建文件 /etc/vsftpd.user_list,用于存放允许访问 ftp 的用户

    sudo touch /etc/vsftpd.user_list
    sudo chmod a+w /etc/vsftpd.user_list
    

    想了解没有配置的意思,请参考前面连接
    https://security.appspot.com/vsftpd/vsftpd_conf.html

    修改 /etc/vsftpd.user_list ,加入刚刚创建的用户,一行一个用户

    设置访问权限

    由于我们she用户登录ftp需要打开目录和上传文件,
    读权限:对文件具有读取文件内容的权限、对文件目录具有浏览目录信息的权限
    写权限:对文件具有修改文件内容的权限、对文件目录具有移动删除目录信息的权限
    执行权限:对文件具有执行文件的权限、对文件目录具有进入目录的权限
    因此,防止用户下载可以通过以下两个途径

    1. 在vsftpd.conf中后面添加download_enable=NO
    2. 修改local_umask=477,默认是=700,他会自动把上传的文件修改权限为:
    ----r---w- 1 she  she   616448 Mar  8 15:04 第1次实验_201*****419_麦*文.doc
    
    1. 这样she就没有权限了,

    禁止she用户具有删除文件的权利

    首先执行

    mkdir -p /etc/vsftpd/vsftpd_user_conf
    

    然后执行

    vim /etc/vsftpd/vsftpd_user_conf/she
    
    

    (注意后面的 she)对应自己要限制权限的账户,我限制的 是she 账户对应的命令就变成

    vim /etc/vsftpd/vsftpd_user_conf/she
    

    在里面 写入

    cmds_denied=DELE
    

    这句话的意思是 禁止使用 删除命令。更多命令

    https://blog.51cto.com/dreamway/1045610

    重新打开配置文件

    vim /etc/vsftpd/vsftpd.conf
    

    在尾部 写一句

    user_config_dir=/etc/vsftpd/vsftpd_user_conf
    

    重启vsftpd 服务:

    sudo systemctl restart vsftpd.service
    
  • 相关阅读:
    LeetCode278. 第一个错误的版本
    LeetCode275. H 指数 II
    LeetCode274. H 指数
    LeetCode273. 整数转换英文表示
    LeetCode268. 缺失数字
    LeetCode264. 丑数 II
    LeetCode263. 丑数
    关于解决Chrome新版本中cookie跨域携带和samesite的问题处理
    java将list转为树形结构的方法
    Python pycharm selenium hyrobot 学习中遇到的问题汇总2
  • 原文地址:https://www.cnblogs.com/guguobao/p/10498662.html
Copyright © 2011-2022 走看看