ubuntu 16 搭建只能上传不可下载删除ftp服务

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

如果使用window文件管理连接,要注意下图的设置
1252747-20190308223626145-913002535.png

使用 apt-get 安装 vsftpd

sudo apt-get install vsftpd -y

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

sudo netstat -nltp | grep 21

1252747-20190308215415087-1232872923.png

如果没有启动,可以手动开启 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

转载于:https://www.cnblogs.com/guguobao/p/10498662.html

Ubuntu搭建FTP服务器可以使用vsftpd软件包。下面是在Ubuntu搭建FTP服务器的步骤: 1. 安装vsftpd软件包: 打开终端,运行以下命令以安装vsftpd软件包: ``` sudo apt update sudo apt install vsftpd ``` 2. 配置vsftpd: - 打开vsftpd配置文件: ``` sudo nano /etc/vsftpd.conf ``` - 在配置文件中,你可以根据需要进行以下更改(可选): - 确保以下行没有被注释掉(删除行前的`#`): ``` write_enable=YES local_umask=022 chroot_local_user=YES ``` - 如果你想允许匿名用户访问FTP服务器,请确保以下行设置为: ``` anonymous_enable=YES ``` - 如果你不希望匿名用户访问FTP服务器,请确保以下行设置为: ``` anonymous_enable=NO ``` - 如果你想限制用户访问的目录,请添加以下行,并将`/path/to/directory`替换为你希望限制的目录路径: ``` local_root=/path/to/directory ``` - 保存并关闭文件。 3. 启动vsftpd服务: 运行以下命令以启动vsftpd服务: ``` sudo systemctl start vsftpd ``` 4. 配置防火墙(可选): 如果你的Ubuntu服务器配置了防火墙,你需要打开FTP的相关端口。默认情况下,FTP使用TCP端口20和21。你可以使用以下命令允许这些端口的流量: ``` sudo ufw allow 20/tcp sudo ufw allow 21/tcp ``` 现在,你已经在Ubuntu上成功搭建了一个基本的FTP服务器。你可以通过使用FTP客户端软件,如FileZilla,来连接和访问服务器。请注意,为了安全起见,建议在实际使用中进一步配置用户权限、加密连接等。 如果你遇到任何问题,请参考vsftpd的官方文档或Ubuntu的官方文档以获取更多帮助和指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值