有网在线安装,没网的话用下面这个安不了
更新软件源:sudo apt-get update
安装vsftpd:sudo apt-get install vsftpd
start:启动该服务;
stop:关闭该服务;
restart:重新启动该服务;
status:查看该服务状态;
查看vsftpd
服务状态,可以使用如下命令:
sudo service vsftpd status
FTP客户端
注意:使用ftp
命令去连接远程主机时,必须保证远程主机的vsftpd
服务是开启状态。
案例演示环境初始化:执行如下操作:向文件/etc/vsftpd.conf
(部分Linux
系统是/etc/vsftpd/vsftpd.conf
文件)结尾追加三行anon_root=/
、anon_other_write_enable=YES
和anon_umask=022
。同时将anon_upload_enable=YES
、write_enable=YES
和anon_mkdir_write_enable=YES
前的#
符号删除,并将anonymous_enable
设置为YES
,然后重新启动vsftpd
服务,下一关讲解为什么要这样做。
[修改后的配置文件]
连接远程主机
案例演示1
:
使用ftp
客户端连接本地vsftpd
服务器,可以使用如下命令: ftp localhost
或 ftp 127.0.0.1
如果本地vsftpd
服务器开启的话,我们就可以直接连接程序,此时需要输入登录的用户名和密码。当正确的输入用户名和密码后,我们就可以使用ftp
来上传和下载文件了。vsftpd
服务器默认使用匿名登录,即用户名为anonymous
,密码为空(直接回车即可)。
执行本地shell命令
案例演示2
:
显示本地主机的当前目录,将本地主机的当前目录修改为/home
目录,然后显示当前目录下的文件信息,可以使用如下命令:
!pwd
lcd /home
!ls
执行远程shell命令
案例演示3
:
显示远程主机的当前目录,将远程主机的当前目录修改为/tmp
目录,然后显示当前目录下的文件信息,可以使用如下命令:
pwd
cd /tmp
ls
上传文件
案例演示4
:
在远程主机上新建一个目录newDir
,然后将本地的文件/home/fzm/test.c
上传到远程主机newDir
目录下并重命名为newTest.c
,可以使用如下命令:
mkdir newDir
send /home/fzm/test.c ./newDir/newTest.c
下载文件
案例演示5
:
将远程主机上的文件/tmp/newDir/newTest.c
下载到本地/home/fzm
目录下并重新命名为oldTest.c
,然后将远程主机上的newDir
目录删除,可以使用如下命令:
cd /tmp
recv newDir/newTest.c /home/fzm/oldTest.c
delete newDir/newTest.c
rmdir newDir
退出远程连接
案例演示6
:
终止远程主机的连接,然后退出ftp
管理程序,可以使用如下命令:
close
bye
下面是FTP的配置 上面是客户端
vsftpd
服务器提供了很多的配置项,每个配置项都有不同的功能,接下来,我们介绍vsftpd
常见的配置项功能,vsftpd
服务器的配置文件存放路径为:/etc/vsftpd.conf
,部分Linux
系统是存放在/etc/vsftpd/vsftpd.conf
目录下。
vsftpd
服务器的连接方式有两种,一种是可以使用匿名(anonymous
)登录,另一种是可以使用本地用户进行远程登录,默认情况下是使用匿名登录。
ftp
匿名登录
常见关于匿名登录的配置项如下所示:
案例演示1
:
禁止使用匿名用户登录ftp
服务器,具体使用如下步骤:
设置 anonymous_enable=NO(sudo vim /etc/vsftpd.conf)
sudo service vsftpd restart
ftp localhost
[修改配置文件]
可以看到当我们把`anonymous_enable=NO`后,同时`vsftpd`又默认禁止本地用户登录,所以在远程连接主机时就会出现错误。
ftp
本地用户登录
常见关于本地用户登录服务器的配置项如下所示:
local_enable: 是否允许本地用户(即 linux 系统中的用户帐号)登录 FTP 服务器,默认设置为 NO 允许,本地用户登录后会进入用户主目录;
write_enable:是否允许本地用户对 FTP 服务器文件具有写权限,默认设置为 YES 允许;
chroot_local_user:是否将所有用户限制在主目录, YES 为启用 NO 禁用;
chroot_list_enable:是否启动限制用户的名单 YES 为启用 NO 禁用;
chroot_list_file:是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于 chroot_local_user 的值;
local_root: 本地用户登录后的默认工作目录;
local_umask: 设置本地用户的文件掩码为缺省 022;
userlist_enable:此选项激活后,vsftpd 将读取 userlist_file 参数所指定的文件中的用户列表,默认为 NO;
userlist_file:userlist_enable 选项生效后,被读取的包含用户列表的文件。默认值是 /etc/vsftpd.user_list;
userlist_deny:决定禁止还是只允许由 userlist_file 指定文件中的用户登录 FTP 服务器。userlist_enable 选项启动后才能生效。默认值为 YES,禁止userlist_file 指定文件中的用户登录,同时不向这些用户发出输入口令的指令。NO,只允许 userlist_file 指定文件中的用户登录FTP服务器;
chroot_local_user
、chroot_list_enable
和chroot_list_file
三个配置项间的关联关系如下表所示:
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指定的用户列表,没有任何“例外”用户 |
userlist_enable
、userlist_deny
和userlist_file
三个配置项间的关联关系如下表所示:
userlist_enable=YES | userlist_enable=NO | |
---|---|---|
userlist_deny=YES | 禁止userlist_file指定文件中的用户登录,同时不向这些用户发出输入口令的指令 | 不影响用户登录 |
userlist_deny=NO | 只允许userlist_file指定文件中的用户登录 | 不影响用户登录 |
案例演示环境初始化:如果用户想在本平台的右侧命令行进行验证如下案例,则需要将vsftpd
的配置文件(/etc/vsftpd.conf
)中pam_service_name=vsftpd
修改为pam_service_name=ftp
,笔者建议用户在本地的Ubuntu 12.04
系统上进行验证。
案例演示1
:
新建一个本地用户(ftpUser
,密码为123456
),然后配置vsftpd
服务允许本地用户登录,使用ftpUser
远程连接主机,具体使用如下步骤:
sudo useradd ftpUser
sudo passwd ftpUser
设置 local_enable=YES(sudo vim /etc/vsftpd.conf)
sudo service vsftpd restart
ftp localhost
[修改配置文件]
案例演示2
:
所有用户限制在主目录不能进行其它目录的切换(除主目录外),使用ftpUser
进行远程连接验证,具体使用如下步骤:
设置 chroot_local_user=YES(sudo vim /etc/vsftpd.conf)
sudo chmod a-w /home/ftpUser
sudo service vsftpd restart
ftp localhost
[修改配置文件]
注意:如果启用chroot
,必须保证登录ftp
服务器的用户根目录不可写,因此要执行sudo chmod a-w /home/ftpUser
(因为是使用ftpUser
用户登录,如果其它用户登录则修改对应的根目录)。
可以发现登录后,我们切换当前目录为/
,然后列出当前目录下的所有文件,发现只存在一个文件,因为此时的/
目录不是我们整个系统的根目录,这里的根目录其实只是/home/ftpUser
目录而已。
案例演示3
:
禁止/etc/vsftpd/userlist
文件中的用户登录ftp
服务器,使用ftpUser
用户进行验证,具体使用如下步骤:
设置 userlist_deny=YES、userlist_enable=YES和userlist_file=/etc/vsftpd/user_list(sudo vim /etc/vsftpd.conf)
sudo mkdir /etc/vsftpd/
sudo touch etc/vsftpd/user_list
向 /etc/vsftpd/user_list 文件中添加一行内容 ftpUser(sudo vim /etc/vsftpd/user_ist)
sudo service vsftpd restart
ftp localhost
[修改配置文件]
[向/etc/vsftpd/user_list
文件中添加ftpUser
]
vsftpd
其它配置
常见其它配置项如下所示:
data_connection_timeout:设置数据连接超时时间;
idle_session_timeout:设置数据传输中断间隔时间;
ascii_upload_enable:是否以 ASCII 方式上传数据;
ascii_download_enable:是否以 ASCII 方式下载数据;