vsftpd超实用技巧详解(一)
这篇文章主要会讲解vsftpd的匿名用户与系统用户的企业使用技巧。
简介
vsftpd 是“very secure FTP daemon”的缩写,是一个完全免费的、开放源代码的ftp服务器软件。特点是:非常高的安全性需求、带宽限制、良好的可伸缩性等。
工作原理:
vsftpd使用ftp协议,该协议属于应用层协议。它是典型的c/s架构,ftp服务端用来存储文件,ftp客户端可以通过ftp协议连接服务端实现上传和下载资源。
ftp使用tcp的21端口进行命令传输,然后用tcp 的20端口进行数据传输(主动模式)。
安装部署:
[code]yum install vsftpd ftp lftp -y vsftpd: 为服务端软件 ftp、lftp: 为客户端工具,推荐使用lftp
启动服务:
[code]systemctl start vsftpd
匿名用户登录访问:
用ftp客户端匿名登录需要输入用户名及密码验证,匿名用户名为:ftp或者anonymous,密码为空。
用lftp客户端匿名登录则不需要输入以上信息。
[code]ftp客户端连接: [root@www ~]# ftp 192.168.0.103 Connected to 192.168.0.103 (192.168.0.103). 220 (vsFTPd 3.0.2) Name (192.168.0.103:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. lftp客户端连接: [root@www ~]# lftp 192.168.0.103 lftp 192.168.0.103:~>
这里我们重点讲lftp使用方法,ftp客户端工具使用方法大致相同。
下载命令:
get用于下载单个文件:
[code]可以先切换到**本地指定目录**(data)进行文件的下载,保存: lftp 192.168.0.103:/> lcd /data/ lcd 成功, 本地目录=/data lftp 192.168.0.103:/> get file003.txt
ps:当客户端已经连接上服务端,cd是用于切换服务器中的目录命令,如果想切换客户端本地的目录则使用lcd命令。
mget用于批量下载:
[code]lftp 192.168.0.103:/> mget file00* Total 7 files transferred
默认配置只能进行文件的读取和下载,不能进行写入和上传文件:
[code]lftp 192.168.0.103:~> put /etc/fstab put: Access failed: 550 Permission denied. (fstab) lftp 192.168.0.103:/> mkdir abc mkdir: Access failed: 550 Permission denied. (abc) 可以看到上传命令和创建命令都失败了,没有响应的权限!
开启匿名用户创建文件,重命名,删除,上传权限:
[code]#开启上传权限 anon_upload_enable=YES #开启创建文件权限 anon_mkdir_write_enable=YES #开启重命名,删除权限 anon_other_write_enable=YES
重启服务,再次进入,发现还是没法创建目录,但是报错信息不一样,如下:
[code]lftp 192.168.0.103:/> mkdir abc mkdir: Access failed: 550 Create directory operation failed. (abc)
这是因为目录没有写权限,给pub目录授权,如下:
[code][root@localhost ~]# chmod o+w /var/ftp/pub/ [root@localhost ~]# ll /var/ftp/pub/ -d drwxr-xrwx 3 root root 192 8月 7 08:37 /var/ftp/pub/
再次进入,创建目录,如下:
[code]lftp 192.168.0.103:/pub> mkdir abc mkdir 成功, 建立 `abc'
小总结:要想匿名用户有写的权限,一是需要服务端配置文件开启写的权限,二是所在的目录本身有其他用户写的权限!
上传命令:
要想使用上传命令,需要开启上传权限和可写权限。
[code]语法:put [OPTS] <lfile> [-o <rfile>] 一、直接上传不改名,可以省去-o refile,如果不知道本地目录有哪些文件,可以使用!dir查看,如下: lftp 192.168.0.103:/pub> !dir anaconda-ks.cfg favicon.png lftp 192.168.0.103:/pub> put /etc/fstab 501 bytes transferred
上面这个例子中,我们将本地文件fstab上传到了匿名用户的pub目录中。
[code]二、上传文件之后,想改名,就要带-o refile了,如下 lftp 192.168.0.103:/pub> put /etc/fstab -o fs 501 bytes transferred lftp 192.168.0.103:/pub> ls drwx------ 2 14 50 6 Aug 08 06:27 abc -rw------- 1 14 50 501 Aug 08 06:34 fs -rw------- 1 14 50 501 Aug 08 06:34 fstab 上面这个例子中, 我们将本地文件fstab上传到了匿名用户的pub目录并修改了文件名。 三、多文件上传 上传多个文件,可以使用put和mput命令上传,多个文件之间用空格分隔,如果想使用通配符,只有mput命令支持: lftp 192.168.0.103:/pub> put /etc/fstab /etc/favicon.png 1580 bytes transferred Total 2 files transferred lftp 192.168.0.103:/pub> ls drwx------ 2 14 50 6 Aug 08 06:27 abc -rw------- 1 14 50 1079 Aug 08 06:40 favicon.png -rw------- 1 14 50 501 Aug 08 06:40 fstab lftp 192.168.0.103:/pub> mput /etc/f* 1688 bytes transferred Total 4 files transferred lftp 192.168.0.103:/pub> ls drwx------ 2 14 50 6 Aug 08 06:27 abc -rw------- 1 14 50 1079 Aug 08 06:41 favicon.png -rw------- 1 14 50 70 Aug 08 06:41 filesystems -rw------- 1 14 50 501 Aug 08 06:41 fstab -rw------- 1 14 50 38 Aug 08 06:41 fuse.conf
本地用户登录访问:
vsftpd 是“very secure FTP daemon”的缩写,是一个完全免费的、开放源代码的ftp服务器软件。特点是:非常高的安全性需求、带宽限制、良好的可伸缩性等。d
[code]服务端设置用户名及密码: [root@localhost ~]# id lutixia uid=1000(lutixia) gid=1000(lutixia) 组=1000(lutixia) [root@localhost ~]# echo "lutixia" |passwd --stdin lutixia 更改用户 lutixia 的密码 。 passwd:所有的身份验证令牌已经成功更新。
修改配置文件,可以设置不让匿名用户登录,只能本地用户登录:
[code]vim /etc/vsftpd/vsftpd.conf anonymous_enable=NO local_enable=YES
重启服务。然后再次访问:
[code]systemctl restart vsftpd [root@www ~]# lftp 192.168.0.103 lftp 192.168.0.103:~> ls `ls' at 0 [正在发送命令...] 上面这个登录,表示匿名用户已经无法登录了。 [root@www ~]# lftp lutixia:lutixia@192.168.0.103 lftp lutixia@192.168.0.103:~> ls lftp lutixia@192.168.0.103:~> 然后用本地用户登录,就ok了。
上传和下载和匿名用户一样的使用方法。
故障解决:
如果重启时,报错如下:
[code][root@localhost ~]# systemctl restart vsftpd Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details. [root@localhost ~]# journalctl -xe -- Unit vsftpd.service has begun starting up. 8月 08 02:59:14 localhost.localdomain vsftpd[12751]: 500 OOPS: bad bool value in config file for: anonymous_en 8月 08 02:59:14 localhost.localdomain systemd[1]: vsftpd.service: control process exited, code=exited status=2
解决办法:这种问题一般就是空格导致的,是每一行配置后面都不能有空格,也不能跟注释。
通常而言,vsftp服务器放置于内部局域网使用,前面还有防火墙,一般来说很安全了,不过vsftpd还有更安全的配置方式,就是虚拟用户,有时间我们继续聊!
获取文章更新,以及常用软件,可以关注公众号: 笨办法学linux
- WINCE实用技巧 之 创建快捷方式详解
- Android Gradle defaultConfig详解及实用技巧
- WINCE 实用技巧 之 创建快捷方式详解
- WINCE实用技巧 之 创建快捷方式详解
- WINCE实用技巧 之 创建快捷方式详解963014325
- 详解Chrome 实用调试技巧
- WINCE实用技巧 之 创建快捷方式详解
- myEclipse 实用技巧详解(4)
- 线程安全详解及相关实用技巧
- Python实用技巧之列表、字典、集合中根据条件筛选数据详解
- 【线段树详解】从入门到各种实用技巧
- 技巧心得:系统配置实用程序详解---优美的旋律,令人难以忘怀!
- WINCE 实用技巧 之 创建快捷方式详解
- 【树状数组详解】从入门到各种实用技巧
- WINCE 实用技巧 之 创建快捷方式详解
- JavaScript实用技巧
- iOS开发实用技巧——屏幕适配研究
- 前端常用JS实用技巧归结--图片解码,脚本,格式化,正则
- 超实用的JavaScript技巧及最佳实践(上)
- MapXtreme实用技巧与源码10例