这里实现的效果是,iso用户可以通过4000端口访问ftp服务器,但是是进到iso用户的家目录 /home/iso下面。
如果没有文件,ftp内容是空的,给iso 切换目录权限是可以切换到对应iso文件目录。感觉不太方便。
可以启用anonymous 配置默认目录为iso文件所在目录即可。
如果你没有输入那个 username@ 的字样时,系统默认会以匿名登录来处理这次的联机。因此如果你想要使用实体用户联机时, 就在在 IP 或主机名之前填写你的账号。
最后启用匿名用户及本地用户登陆模式
配置过程
1.新增iso用户
创建ftp用户 例如
useradd -d /gdhtcm/vsftp -s /sbin/nologin iso
passwd iso
2.启动vsftpd服务,并设置开机自启动
systemctl enable vsftpd
systemctl start vsftpd
若有防火墙,需要防火墙添加ftp服务
3.关键配置文件配置如下
主要配置文件如下 vsftp.conf ftpusers chroot_list(没有的话自建) /etc/pam.d/vsftpd
[root@yum vsftpd]# pwd
/etc/vsftpd
[root@yum vsftpd]# ls
chroot_list ftpusers user_list user_list.bak vsftpd.conf vsftpd.conf_local_enabled vsftpd_conf_migrate.sh
[root@yum vsftpd]# cat ftpusers
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
[root@yum vsftpd]# cat chroot_list
iso
[root@yum vsftpd]#
[root@yum vsftpd]# grep -Ev '^[[:space:]].*|^#' vsftpd.conf
anonymous_enable=yes
#下面这行设定anonymous用户的主目录,默认是/var/ftp/pub/
anon_root=/gdhtcm/iso/iso_for_ftp/
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
listen_port=4000
use_localtime=YES
banner_file=/etc/vsftpd/welcome.txt
[root@yum vsftpd]# cat /etc/pam.d/vsftpd
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
4.更改vsftpd默认端口号21 为4000
vsftpd启动后,默认的ftp端口是21,现在我想把ftp端口改成 4000 ,修改后能保证用户上传下载不受影响
- 编辑 /etc/vsftpd/vsftpd.conf 文件,在该配置文件中添加此行:listen_port=4000
- 编辑 /etc/services 文件,将其中的 ftp 21/tcp 改为 ftp 4000/tcp , ftp 21/udp 改为 ftp 4000/udp
- 执行 /etc/init.d/vsftpd restart 重新启动 vsftpd 服务。启动完成后可以使
- 用 netstat -ntpl | grep vsftpd 命令可以查看到系统现监听的 vsftpd 的端口为 4000
- 使用 客户端测试访问 ftp server_IP:4000( vsftpd 服务器的地址 )。