您的位置:首页 > 理论基础 > 计算机网络

[计算机网络] vsftpd的安装与使用

2016-01-11 12:51 295 查看
简单介绍:

vsftpd是一个能够执行在类UNIX操作系统上的FTPserver软件,它能够执行在Linux、BSD、Solaris、HP-UX等系统上。

1 vsftpd的安装

在ubuntu系统上安装vsftpd:

sudo apt-get install vsftpd


2 vsftpd的配置

在linux系统中,配置文件一般位于/etc文件夹下,在ubuntu中。vsftpd的配置文件是/etc/vsftpd.conf。

FTP服务通常是供文件共享之用,一般在登陆FTPserver时须要输入username和password。当中有一种用户叫做匿名用户。也就是不论什么人都能够用这个username进行登陆,匿名用户的username通常是anonymous或者ftp。

vsftpd安装之后。默认是不准匿名用户登陆的,为了使匿名用户登陆。能够对/etc/vsftpd.conf进行改动。主要是以下几个部分的改动:

//同意匿名用户登陆,默认关闭
anonymous_enable=YES
//同意本地用户登陆
local_enable=YES
//同意写命令
write_enable=YES
//同意匿名用户上传
anon_upload_enable=YES
//同意匿名用户创建文件夹
anon_mkdir_write_enable=YES
//设定匿名用户的文件创建屏蔽字
anon_umask=022


之后,发现能够下载。可是不能上传,使用put命令时会发生553 Could not create file,原因是没有对FTPserver的文件夹进行权限改动:

因为不同系统上,FTPserver所使用的文件夹是不一样的,使用以下的命令能够知道FTPserver所使用的文件夹:

cat /etc/passwd | grep ftp |awk -F: '{print $6}'


在我的系统上是/srv/ftp,于是用以下的命令对该文件的权限进行改动:

sudo chmod 777 /srv/ftp
发现登陆后。会出现下面错误:

500 OOPS: vsftpd: refusing to run with writable root inside chroot()


这是因为文件的安全问题而引起的,解决的方法是,在/srv/ftp以下新建一个目录,将它的权限改动为777,之后的上传操作都在这个目录中进行。

3 vsftpd的使用

3.1 vsftpd的开启和关闭

//开启vsftpd服务
service vsftpd start

//关闭vsftpd服务
service vsftpd stop

//重新启动vsftpd
service vsftpd restart

//又一次载入配置文件
service vsftpd reload


3.2 vsftpd的登陆和登出

//链接FTPserver
ftp 127.0.0.1


之后会要求输入username和password,假设是匿名用户,username是anonymous或者ftp。password任意。

假设要退出ftpserver,在ftp的命令行下输入exit就可以。

3.3 上传和下载

在ftp的命令行下输入help能够列出该server支持的命令:

ftp> help
Commands may be abbreviated.  Commands are:

!		dir		mdelete		qc		site
$		disconnect	mdir		sendport	size
account		exit		mget		put		status
append		form		mkdir		pwd		struct
ascii		get		mls		quit		system
bell		glob		mode		quote		sunique
binary		hash		modtime		recv		tenex
bye		help		mput		reget		tick
case		idle		newer		rstatus		trace
cd		image		nmap		rhelp		type
cdup		ipany		nlist		rename		user
chmod		ipv4		ntrans		reset		umask
close		ipv6		open		restart		verbose
cr		lcd		prompt		rmdir		?
delete		ls		passive		runique
debug		macdef		proxy		send


上传能够使用send或者put,下载能够使用recv或者get。

//上传文件。将本地的local_file上传到server上。命名为remote_file
put local_file remote_file

//下载文件。将server上的remote_file下载到本地,命名为local_file
get remote_file local_file
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: