FTP设置普通用户单一上传功能
背景:
当前项目在使用FTP的上传功能时,配置的上传公共账号为root用户。处于安全考虑需要调整为普通用户,账号需要满足以下要求:
- 可以进行FTP的上传相关功能,删除、下载、查看、重命名功能需要被禁止。
- 账号禁止SSH登录。
- 账号指定登录初始位置,禁止向上一层切换。
配置过程:
- 切换root用户
sudo su root
2.创建用户ftptest,将其登录终端设置为/usr/sbin/false,防止用户ssh登录
useradd -m -s /usr/sbin/false ftptest
3.设置用户密码
passwd ftptest
4.将/usr/sbin/false加入/etc/shells中,使其可以使用ftptest用户进行ftp登录
echo "/usr/sbin/false">>/etc/shells
5.修改/etc/passwd系统配置文件
设置ftptest用户和root相同的群组,配置ftp登录初始化位置(根据实际位置配置)
6.配置/etc/vsftpd.conf(备注:已经配置过FTP服务),禁止用户访问上层目录.自行创建 /etc/vsftpd.chroot_list,不添加任何用户(备注:在vsftpd.chroot_list中得用户可以切换到上 层目录)。配置方式如下:
创建vsftpd.chroot_list
7.在/etc/vsftpd.conf中添加FTP命令限制参数。FTP只能上传,不能下载、删除、重命名配置如下,cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
主要FTP命令参数释义:
MKD - make a remote directory 新建文件夹
NLST - name list of remote directory
PWD - print working directory 显示当前工作目录
RETR - retrieve a remote file 下载文件
STOR - store a file on the remote host 上传文件
DELE - delete a remote file 删除文件
RMD - remove a remote directory 删除目录
RNFR - rename from 重命名
RNTO - rename to 重命名