vsftpd 是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。一般操作系统默认的ftp软件就是vsftpd,今天会谈一下笔者的使用
vsftpd 是以一般身份启动服务,所以对于 Linux 系统的使用权限较低,对于Linux 系统的危害就相对的减低了。此外, vsftpd 亦利用 chroot() 这个函式进行改换根目录的动作,使得系统工具不会被vsftpd 这支服务所误用;
任何需要具有较高执行权限的 vsftpd 指令均以一支特殊的上层程序( parent process ) 所控制 ,该上层程序享有的较高执行权限功能已经被限制的相当的低,并以不影响Linux 本身的系统为准;
所有来自 clients 端,想要使用这支上层程序所提供的较高执行权限之vsftpd 指令的需求,均被视为『不可信任的要求』来处理,必需要经过相当程度的身份确认后,方可利用该上层程序的功能。例如chown(), Login 的要求等等动作;
此外,上面提到的上层程序中,依然使用 chroot() 的功能来限制使用者的执行权限。
首先我们需要安装vsftpd
使用命令 sudo apt-get install vsftpd
然后测试是否安装成功
sudo service vsftpd restart 没反应就是成功了
如果想要卸载 vsftpd(http://www.linuxidc.com/Linux/2012-07/65455.htm)
sudo apt-get remove --purge vsftpd
当然 这里不需要去卸载.
在/home/下建立myftp文件夹,权限755,在myftp下创建share文件夹权限 777
sudo mkdir -p /home/myftp/share (mkdir -p 文件夹路径,表示递归创建文件夹)
myftp 权限赋值 chmod -R 755 /home/myftp
share 权限赋值 chmod -R 777 /home/myftp/share
新建一个ftp用户(uftp1就是用户名,根据需要取)
sudo useradd -d /home/myftp -s /bin/bash uftp1
注意文件夹路径,后面是用户名
删除一个用户
udo userdel -r uftp sud (uftp是要删除的用户名)
为用户设置一个密码
sudo passwd uftp1
然后会输入两次密码.
修改 vsftpd的配置文件 先找到vsftpd 查询语句whereis vsftpd
然后 进入 etc目录 使用vim语句修改文件.
先找到这三句 把 以下代码解注释
write_enable=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
然后在文件末尾添加几行代码 就完成了
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/allowed_users
seccomp_sandbox=NO
看到上面的配置 我们就知道需要建两个文件 touch 文件名 来创建一个空文件
在 etc文件夹目录下创建这两个文件 在两个文件下都 写入上面创建的用户名
通过filezilla访问, 如果只看到一个文件夹即表示正确 (主机就是服务器的公网ip, 用户名是刚创建的用户名, 密码是创建的密码,端口号时候22)
最终结果是我们不能想myftp中上传文件,但是可以向share中上传文件,并且不能访问其他的目录文件
以下是对刚才的配置文件的解释
linux下
ftp host
输入帐号,密码,这个是刚刚专门为其创建的
yz-kvm-zp-01.dns.ganji.com接下来可以使用命令了