ubuntu下搭建vsftpd服务器的案例分享

发布时间:2020-01-29编辑:脚本学堂
本文介绍下,在 ubuntu下搭建vsftpd服务器的方法,有需要的朋友参考下。

本节学习vsftpd在ubuntu系统中的安装方法。

1,安装vsftpd
 

复制代码 代码示例:
sudo apt-get install vsftpd

2,基本配置(配置选项可参考man vsftpd.conf)
 

复制代码 代码示例:
独立启动
listen=YES
最大客户端数
max_clients=10
每个客户端最大连接数
max_per_ip=5
运行修改文件系统的操作
write_enable=yes
禁止本地用户登录
#local_enable=YES(#表示注释掉)

3,配置匿名用户(开通所有权限)
 

允许anonymous登录FTP
anonymous_enable=YES
允许anonymous上传文件
anon_upload_enable=YES
允许anonymous创建目录
anon_mkdir_write_enable=YES
运行anonymous操作文件
anon_other_write_enable=YES
指定anonymous的根目录
anon_root=/home/ftp/anonymous

指定新建文件的权限掩码(根据我的测试,掩码只有为这么多才能够上传、删除、修改文件;022,007等都不行)
 

复制代码 代码示例:
anon_umask=002
sudo mkdir -p /home/ftp/anonymous/pub
sudo chown ftp:ftp /home/ftp/anonymous/pub

anonymous目录的权限为drwxr-xr-x,其所有者:组所有者为root:root。不可将其修改为ftp:ftp,不然会出现如下错误:vsftpd: refusing to run with writable root inside chroot(),这是为了避免一个安全漏洞,从 vsftpd 2.3.5 开始,chroot 目录必须不可写。所以我们们上传文件也不能上传到我们登录时候的主目录下,但我们可将文件上传至pub目录下。所以我们将pub的所有者:组所有者设为ftp:ftp。

4,ftp命令(参见man ftp)
 

! [command [args]]    执行本地命令
verbose
ascii           
binary
bye
open host [port]
close
pwd
cd remote-directory
lcd [directory]        切换本地目录
ls [remote-directory] [local-file]
mls remote-files local-file
chmod mode file-name
append local-file [remote-file]
delete remote-file
mdelete [remote-files]
get remote-file [local-file]
mget remote-files
put local-file [remote-file]
mput local-files
mkdir directory-name
rmdir directory-name
rename [from] [to]

5,ftp自动登录(参见man netrc)
在主目录下的.netrc文件中添加下面一行可实现anonymous自动登录
 

复制代码 代码示例:
machine localhost login anonymous password n

6,ftp搭建centos网络安装环境
切换到CentOS-6.4-x86_64-bin-DVD1.iso文件所在目录
创建media目录并挂载CentOS-6.4-x86_64-bin-DVD1.iso
 

复制代码 代码示例:
mkdir media
sudo linuxjishu/9952.html target=_blank class=infotextkey>mount -ro loop CentOS-6.4-x86_64-bin-DVD1.iso media/
 

将所需源文件全部拷贝到ftp服务器上(匿名用户的配置参考前面《配置匿名用户》)
 

复制代码 代码示例:
sudo mkdir -p /home/ftp/anonymous/centos
sudo cp -ar media/. /home/ftp/anonymous/centos

卸载映像并删除media目录
 

复制代码 代码示例:
sudo umount media
rmdir media