注:建议使用vsftp,如果使用了pure-ftpd,需要屏蔽掉pure-ftpd服务。
环境准备:
- 关闭防火墙
- 除非特殊说明外,以下操作均使用root进行
1、检查FTP组件是否安装
rpm -qa | grep vsftpd
如无任何显示,则表示为安装此服务。使用zypper install -y vsftpd
安装vsftp服务。
vsftpd
2、修改vsftpd的配置文件
备份:cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
配置如下(其他默认):
1.#启动向服务器写的权限
write_enable=YES
2.# 允许本地用户登录
local_enable=YES
3.# 一个用户不能访问自己主目录之外的目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
3、编辑vsftpd.chroot_list
文件,将创建的ftp用户添加到如下文件中(如:ftpuser)
vim /etc/vsftpd.chroot_list
此文件包含对服务器上所有FTP内容有权限的用户名。对其他用户来说,他们在服务器上的主目录对他们显示为根目录。
4、启动vsftpd服务相关(加入开机启动项)
# 重启vsftpd服务
service vsftpd restart
# 查看vsftpd自动状态
chkconfig --list | grep vsftpd
# 添加vsftpd自启动
chkconfig vsftpd on
5、修改ftpusers文件
此文件包含禁止FTP登录的用户名,通常有root、uucp、news之类,因为这些用户权限太高,登录FTP误操作危险性大。
如果在测试中使用root登录FTP,修改如下:
vim /etc/ftpusers
# 将root之前的#取消,重启vsftpd服务,即可使用root的账号与密码登录ftp。
6、创建用户
useradd -d /home/ftpuser -m ftpuser
# 设置密码
passwd ftpuser
至此,即可使用FTP连接工具登录(ftpuser/密码 21 ftp方式登录)
7、优化ftp用户只可访问本目录
如新建一个admin用户,若指定admin只能访问/home /uftp目录下的administer目录。则:
(1) 首先要存在administer目录,并且保证administer目录不具备可写的权限,否则将造成登录失败。可使用“chmod a-w + 目录”进行权限的修改。
(2) “vi / etc/vsftpd.conf”,在文件末位添加local_root=/home/uftp/administer.其中administer即是限制访问的目录。
(3) 将chroot_list_enable=YES,chroot_list_file=/etc/vsftpd.chroot_list,注释去掉。
(4) 若没有vsftpd.chroot_list文件,则新建vsftpd.chroot_list文件:“vi / etc/ vsftpd.chroot_list”.
(5) 在文件里添加“admin”用户。
(6) 重启ftp服务器。“sudo service vsftpdrestart”。