(一)安装、启动
yum install vsftpd
systemctl start vsftpd
以上两句后:可以用ftp软件匿名访问服务器。但是不能做任何事情。
(二)添加用户
useradd ftpuser #添加用户
passwd ftpuser #设置用户密码
usermod -s /sbin/nologin ftpuser #限制用户 ftpuser 只能通过 FTP 访问服务器,而不能直接登录服务器
chmod a-w /data/ftp && chmod 777 -R /data/ftp/pub #配置访问权限
usermod -d /data/ftp ftpuser #配置用户主目录
cat /etc/passwd #查看用户列表
有关centos用户的操作方面的知识,看下面这个帖子
https://blog.csdn.net/weixin_44799217/article/details/125622803
(三)无法登录错误(530错误)
530 Login incorrect. Login failed.
修改pam.d文件。
vi /etc/pam.d/vsftpd
#注释掉这行
#auth required pam_shells.so
登录成功。
(四)关闭匿名访问
vi /etc/sftpd/vsftpd.conf
#改掉这句,YES变NO
anonymous_enable=YES
(五)限制用户访问目录
添加用户的时候配置了用户的主目录
usermod -d /data/ftp ftpuser #配置用户主目录
(1)参数说明
- chroot_local_user:是否将所有用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的);
- chroot_list_enable:是否启动限制用户的名单 YES为启用 NO禁用(包括注释掉也为禁用);
- chroot_list_file:是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于chroot_local_user的值;
(2)参数组合使用
项目 | chroot_local_user=YES | chroot_local_user=NO |
---|---|---|
chroot_list_enable=YES | 1、所有用户都被限制在其主目录下 ;2、使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制; | 1、所有用户都不被限制其主目录下 ; 2、使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制; |
chroot_list_enable=NO | 1、所有用户都被限制在其主目录下 ;2、不使用chroot_list_file指定的用户列表,没有任何“例外”用户; | 1、所有用户都不被限制其主目录下 ;2、不使用chroot_list_file指定的用户列表,没有任何“例外”用户; |
(3)配置示例
所有用户均被限制在主目录下,在chroot_list中添加例外用户ftpadmin
vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list
ftpadmin