Centos7 下通过vsftpd配置用户只可上传文件,不可下载文件
vsftpd基本安装
1、安装vsftpd
a 下载
yum -y install vsftpd
出现complete!为安装成功
b 为FTP服务设置开机自启动
systemctl enable vsftpd.service
c 启动FTP服务
systemctl start vsftpd.service
d 查看FTP服务端口
netstat -antup | grep ftp
Warning: 此处有回显,否则服务启动失败
2、配置vsftpd(此处因需求为本地用户,故使用本地用户)
a 添加本地用户ftpuser
useradd ftpuser
b 设置ftpuser密码
passwd ftpuser
c 创建本地用户的工作目录
mkdir /var/ftp/ftpuser
d 修改目录权限
chown -R ftpuser:ftpuser /var/ftp/ftpuser/
3、修改vsftpd的配置
vi /etc/vsftpd/vsftpd.conf
建议先备份一份原配置,在进行修改,我的配置如下:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
xferlog_std_format=YES
download_enable=NO
ftpd_banner=Welcome to blah FTP service .
local_root=/var/ftp/ftpuser/
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=NO
tcp_wrappers=YES
virtual_use_local_privs=NO
#user_config_dir=/etc/vsftpd/vsftpd_user_conf
配置参数解析可参考链接:
配置参数解析
4、创建本地用户配置文件chroot_list
在“/etc/vsftpd/”目录下创建“chroot_list”文件
touch chroot_list
“chroot_list”文件是限制在主目录下的例外用户名单,需将本地用户添加到文件中(直接写用户名即可)。
5、重启vsftpd服务
systemctl restart vsftpd.service
6、客户端测试,这里我使用的FileZilla,使用本地用户登录,上传、下载、删除依次测试即可。
增加删除需求
参考链接:Linux 搭建FTP 服务 ,只允许上传,不允许删除,不允许下载
对于用户不能删除 ftp 上面的文件 的配置方法是
1 、新建用户的配置目录
mkdir -p /etc/vsftpd/vsftpd_user_conf
2、创建以用户名为名称的配置文件
vim /etc/vsftpd/vsftpd_user_conf/testuser
(注意后面的 testuser对应自己要限制权限的账户,本文中为ftpuser )
3、在ftpuser 文件写入下面的配置
cmds_denied=DELE
#( 禁止使用 删除命令),然后保存退出 即可
4、重新修改vsftpd.conf配置文件
vim /etc/vsftpd/vsftpd.conf
5、在尾部 写一句
user_config_dir=/etc/vsftpd/vsftpd_user_conf
即配置用户配置文件。