学习总结8.3 Linux FTP服务器搭建

有网在线安装,没网的话用下面这个安不了 

  1. 更新软件源:sudo apt-get update
  2. 安装vsftpd:sudo apt-get install vsftpd

 

  1. start:启动该服务;
  2. stop:关闭该服务;
  3. restart:重新启动该服务;
  4. status:查看该服务状态;

 

查看vsftpd服务状态,可以使用如下命令:

sudo service vsftpd status

 

 

FTP客户端

注意:使用ftp命令去连接远程主机时,必须保证远程主机的vsftpd服务是开启状态。

案例演示环境初始化:执行如下操作:向文件/etc/vsftpd.conf(部分Linux系统是/etc/vsftpd/vsftpd.conf文件)结尾追加三行anon_root=/anon_other_write_enable=YESanon_umask=022。同时将anon_upload_enable=YESwrite_enable=YESanon_mkdir_write_enable=YES前的#符号删除,并将anonymous_enable设置为YES,然后重新启动vsftpd服务,下一关讲解为什么要这样做。

[修改后的配置文件]

连接远程主机

案例演示1:

使用ftp客户端连接本地vsftpd服务器,可以使用如下命令: ftp localhostftp 127.0.0.1

如果本地vsftpd服务器开启的话,我们就可以直接连接程序,此时需要输入登录的用户名和密码。当正确的输入用户名和密码后,我们就可以使用ftp来上传和下载文件了。vsftpd服务器默认使用匿名登录,即用户名为anonymous,密码为空(直接回车即可)。

执行本地shell命令

案例演示2:

显示本地主机的当前目录,将本地主机的当前目录修改为/home目录,然后显示当前目录下的文件信息,可以使用如下命令:

 
  1. !pwd
  2. lcd /home
  3. !ls

执行远程shell命令

案例演示3

显示远程主机的当前目录,将远程主机的当前目录修改为/tmp目录,然后显示当前目录下的文件信息,可以使用如下命令:

 
  1. pwd
  2. cd /tmp
  3. ls

上传文件

案例演示4

在远程主机上新建一个目录newDir,然后将本地的文件/home/fzm/test.c上传到远程主机newDir目录下并重命名为newTest.c,可以使用如下命令:

 
  1. mkdir newDir
  2. send /home/fzm/test.c ./newDir/newTest.c

下载文件

案例演示5:

将远程主机上的文件/tmp/newDir/newTest.c下载到本地/home/fzm目录下并重新命名为oldTest.c,然后将远程主机上的newDir目录删除,可以使用如下命令:

 
  1. cd /tmp
  2. recv newDir/newTest.c /home/fzm/oldTest.c
  3. delete newDir/newTest.c
  4. rmdir newDir

退出远程连接

案例演示6:

终止远程主机的连接,然后退出ftp管理程序,可以使用如下命令:

 
  1. close
  2. bye

 

 

 

 

 

下面是FTP的配置 上面是客户端

 

 

vsftpd服务器提供了很多的配置项,每个配置项都有不同的功能,接下来,我们介绍vsftpd常见的配置项功能,vsftpd服务器的配置文件存放路径为:/etc/vsftpd.conf,部分Linux系统是存放在/etc/vsftpd/vsftpd.conf目录下。

vsftpd服务器的连接方式有两种,一种是可以使用匿名(anonymous)登录,另一种是可以使用本地用户进行远程登录,默认情况下是使用匿名登录。

ftp匿名登录

常见关于匿名登录的配置项如下所示:

案例演示1:

禁止使用匿名用户登录ftp服务器,具体使用如下步骤:

  1. 设置 anonymous_enable=NO(sudo vim /etc/vsftpd.conf)
  2. sudo service vsftpd restart
  3. ftp localhost

[修改配置文件]

可以看到当我们把`anonymous_enable=NO`后,同时`vsftpd`又默认禁止本地用户登录,所以在远程连接主机时就会出现错误。

ftp本地用户登录

常见关于本地用户登录服务器的配置项如下所示:

 
  1. local_enable: 是否允许本地用户(即 linux 系统中的用户帐号)登录 FTP 服务器,默认设置为 NO 允许,本地用户登录后会进入用户主目录;
  2. write_enable:是否允许本地用户对 FTP 服务器文件具有写权限,默认设置为 YES 允许;
  3. chroot_local_user:是否将所有用户限制在主目录, YES 为启用 NO 禁用;
  4. chroot_list_enable:是否启动限制用户的名单 YES 为启用 NO 禁用;
  5. chroot_list_file:是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于 chroot_local_user 的值;
  6. local_root: 本地用户登录后的默认工作目录;
  7. local_umask: 设置本地用户的文件掩码为缺省 022;
  8. userlist_enable:此选项激活后,vsftpd 将读取 userlist_file 参数所指定的文件中的用户列表,默认为 NO;
  9. userlist_file:userlist_enable 选项生效后,被读取的包含用户列表的文件。默认值是 /etc/vsftpd.user_list;
  10. userlist_deny:决定禁止还是只允许由 userlist_file 指定文件中的用户登录 FTP 服务器。userlist_enable 选项启动后才能生效。默认值为 YES,禁止userlist_file 指定文件中的用户登录,同时不向这些用户发出输入口令的指令。NO,只允许 userlist_file 指定文件中的用户登录FTP服务器;

chroot_local_userchroot_list_enablechroot_list_file三个配置项间的关联关系如下表所示:

chroot_local_user=YESchroot_local_user=NO
chroot_list_enable=YES1. 所有用户都被限制在其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制1.所有用户都不被限制其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制
chroot_list_enable=NO1.所有用户都被限制在其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户1.所有用户都不被限制其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户

userlist_enableuserlist_denyuserlist_file三个配置项间的关联关系如下表所示:

userlist_enable=YESuserlist_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远程连接主机,具体使用如下步骤:

 
  1. sudo useradd ftpUser
  2. sudo passwd ftpUser
  3. 设置 local_enable=YES(sudo vim /etc/vsftpd.conf)
  4. sudo service vsftpd restart
  5. ftp localhost

[修改配置文件]

案例演示2:

所有用户限制在主目录不能进行其它目录的切换(除主目录外),使用ftpUser进行远程连接验证,具体使用如下步骤:

 
  1. 设置 chroot_local_user=YES(sudo vim /etc/vsftpd.conf)
  2. sudo chmod a-w /home/ftpUser
  3. sudo service vsftpd restart
  4. ftp localhost

[修改配置文件]

注意:如果启用chroot,必须保证登录ftp服务器的用户根目录不可写,因此要执行sudo chmod a-w /home/ftpUser(因为是使用ftpUser用户登录,如果其它用户登录则修改对应的根目录)。

可以发现登录后,我们切换当前目录为/,然后列出当前目录下的所有文件,发现只存在一个文件,因为此时的/目录不是我们整个系统的根目录,这里的根目录其实只是/home/ftpUser目录而已。

案例演示3:

禁止/etc/vsftpd/userlist文件中的用户登录ftp服务器,使用ftpUser用户进行验证,具体使用如下步骤:

 
  1. 设置 userlist_deny=YES、userlist_enable=YES和userlist_file=/etc/vsftpd/user_list(sudo vim /etc/vsftpd.conf)
  2. sudo mkdir /etc/vsftpd/
  3. sudo touch etc/vsftpd/user_list
  4. 向 /etc/vsftpd/user_list 文件中添加一行内容 ftpUser(sudo vim /etc/vsftpd/user_ist)
  5. sudo service vsftpd restart
  6. ftp localhost

[修改配置文件]

[向/etc/vsftpd/user_list文件中添加ftpUser]

vsftpd其它配置

常见其它配置项如下所示:

 
  1. data_connection_timeout:设置数据连接超时时间;
  2. idle_session_timeout:设置数据传输中断间隔时间;
  3. ascii_upload_enable:是否以 ASCII 方式上传数据;
  4. ascii_download_enable:是否以 ASCII 方式下载数据;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值