安装Vsftpd服务端
[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# mv vsftpd.conf vsftpd.conf.bak
[root@localhost vsftpd]# grep -v -E "^#|^$" vsftpd.conf.bak > vsftpd.conf
[root@localhost vsftpd]# chown ftp /var/ftp/pub/
[root@localhost vsftpd]# ls -ld /var/ftp/pub/
drwxr-xr-x 2 ftp root 4096 Aug 4 2014 /var/ftp/pub/
[root@localhost vsftpd]# vim vsftpd.conf
anonymous_enable=YES 设置是否允许匿名用户登录FTP服务器。默认为YES
anon_umask=022
anon_upload_enable=YES 是否允许匿名用户上传文件。只有在write_enable设置为YES时,该配置项才有效。而且匿名用户对相应的目录必须有写权限。默认为NO。
anon_mkdir_write_enable=YES 是否允许匿名用户创建目录。只有在write_enable设置为 YES时有效。且匿名用户对上层目录有写入的权限。默认为NO。
anon_other_write_enable=NO 若设置为YES,则匿名用户会被允许拥有多于
anon_world_readable_only=YES 匿名用户是否允许下载可阅读的文档,默认为YES。
no_anon_password=YES 匿名用户登录时是否询问口令。设置为YES,则不询问。默
local_enable=YES 是否允许本地用户登录FTP服务器。默认为NO
write_enable=YES 是否对登录用户开启写权限。属全局性设置。默认NO
local_umask=022 设置本地用户新增文档的umask,默认为022,对应的权限为755。
dirmessage_enable=YES 设置是否显示目录消息。若设置为YES,则当用户进入特定目录(比如/var/ftp/linux)时,将显示该目录中的由message_file配置项指定的文件(.message)中的内容
xferlog_enable=YES 是否启用上传/下载日志记录。默认为NO
connect_from_port_20=YES 默认值为YES,指定FTP数据传输连接使用20端口。若设置为NO,则进行数据连接时,所使用的端口由ftp_data_port指定
xferlog_std_format=YES 日志文件是否使用标准的xferlog日志文件格式(与wu-ftpd使用的格式相同) 。默认为NO
listen=YES 是否监听端口
pam_service_name=vsftpd 设置在PAM所使用的名称,默认值为vsftpd。
userlist_enable=YES 决定/etc/vsftpd/user_list文件是否启用生效。YES则生效,NO不生效。
tcp_wrappers=YES
[root@localhost vsftpd]# systemctl restart vsftpd
[root@localhost vsftpd]# lsof -i :21
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vsftpd 1390 root 3u IPv4 18333 0t0 TCP *:ftp (LISTEN)
安装完成后可以在windows上面访问 ftp://ip(如下图)
安装客户端ftp
[root@localhost ~]# yum -y install ftp
Connected to 192.168.200.101 (192.168.200.101).
220 (vsFTPd 2.2.2)
Name (192.168.200.101:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,200,101,162,145).
150 Here comes the directory listing.
drwxr-xr-x 3 14 0 4096 Mar 25 01:12 pub
226 Directory send OK.
ftp> cd pub
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (192,168,200,101,135,230).
150 Here comes the directory listing.
drwxr-xr-x 2 14 50 4096 Mar 25 01:11 123
226 Directory send OK.
ftp> quit
221 Goodbye.
get 下载
put 上传
[root@localhost ~]# useradd u1
[root@localhost ~]# useradd u2
[root@localhost ~]# useradd u3
[root@localhost ~]# echo "123" | passwd --stdin u1
Changing password for user u1.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo "123" | passwd --stdin u2
Changing password for user u2.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo "123" | passwd --stdin u3
Changing password for user u3.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
local_enable=YES
write_enable=YES
local_umask=077
chroot_local_user=YES
[root@localhost ~]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
客户端所有用户登录测试。
[root@localhost ~]# vim /etc/vsftpd/ftpusers
u3
客户端u3用户登录测试。
[root@localhost ~]# tail -2 /etc/vsftpd/user_list
u1
u2
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES
userlist_deny=NO
[root@localhost ~]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
**************
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES
userlist_deny=YES
[root@localhost ~]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
listen=YES
listen_address=192.168.200.101
listen_port=21
pasv_enable=YES
pasv_min_port=25000
pasv_max_port=26000
[root@localhost ~]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# vim vusers.txt
mike
123
john
456
[root@localhost vsftpd]# rpm -q db4-utils
db4-utils-4.7.25-18.el6_4.x86_64
[root@localhost vsftpd]#
[root@localhost vsftpd]# db_load -T -t hash -f vusers.txt vu.db
[root@localhost vsftpd]# chmod 600 vusers.txt vu.db
[root@localhost vsftpd]# ls -l vusers.txt vu.db
-rw------- 1 root root 12288 Mar 25 11:26 vu.db
-rw------- 1 root root 18 Mar 25 11:25 vusers.txt
[root@localhost vsftpd]# useradd -d /var/ftproot -s /sbin/nologin virtual
[root@localhost vsftpd]# chmod 755 /var/ftproot
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vu
account required pam_userdb.so db=/etc/vsftpd/vu
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/vusers_dir
anonymous_enable=NO
[root@localhost vsftpd]# mkdir /etc/vsftpd/vusers_dir
[root@localhost vsftpd]# touch /etc/vsftpd/vusers_dir/mike
[root@localhost vsftpd]# vim /etc/vsftpd/vusers_dir/john
anon_upload_enable=YES
anon_mkdir_write_enable=YES
[root@localhost ~]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
注意:在主配置文件中删除如下3行:
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
dirmessage_enable=YES
[root@localhost vsftpd]# echo "---------hello,user---------" > /var/ftproot/.message
C:\Users\Crushlinux>ftp 192.168.200.101
连接到 192.168.200.101。
220 (vsFTPd 2.2.2)
用户(192.168.200.101:(none)): mike
331 Please specify the password.
密码:
230----------hello,user---------
230 Login successful.