安装及使用ftp全过程,自己是可以用的,就是可能过程有所省略,要是有童鞋遇到问题,请留言,我们共同学习。
apt-get install vsftpd
vim /etc/vsftpd.conf
按如下配置修改该文件:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=Welcome to my FTP server.
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
pasv_min_port=10060
pasv_max_port=10090
allow_writeable_chroot=YES
其中:
anonymous_enable=NO 为禁止匿名用户登录
如下三条命令可配合使用,
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
chroot_local_user=YES 作用为将用户的活动限制于其自己的根目录内; || =NO 为不限制用户活动范围
chroot_list_enable=YES 允许指定用户不受第一条命令的限制; || 此时=YES 为指定限制活动范围的用户
chroot_list_file=/etc/vsftpd.chroot_list 上述不受限用户名单; ||
同时需创建vsftpd.chroot_list文档,
vim /etc/vsftpd.chroot_list
在限定用户不跳出自己主目录后,使用该用户登录FTP时可能会遇到如下错误:
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
此时可添加一下命令解决:
allow_writeable_chroot=YES
添加用户teacher、xiaoming、xiaohong,其中teacher用户可以访问所有目录并拥有读写权限,xiaoming和xiaohong只能访问学生目录并只对自己的有读写权限。
所有文件放于该目录下
mkdir -p /home/ftp
创建xiaoming和xiaohong自己的目录:
mkdir -p /home/ftp/xiaoming
mkdir -p /home/ftp/xiaohong
teacher用户
sudo useradd -d /home/ftp -s /bin/bash teacher
passwd teacher
用同样方式创建xiaoming和xiaohong。
sudo useradd -d /home/ftp/ -s /bin/bash xiaoming
sudo useradd -d /home/ftp/ -s /bin/bash xiaohong
passwd xiaoming
passwd xiaohong
更改teacher所在组
groupadd tea
usermod -g tea teacher
更改文件夹权限
chmod 777 /home/ftp
chmod 775 /home/ftp/xiaoming
chmod 775 /home/ftp/xiaohong
改变文件夹所有者:
chown xiaoming:tea /home/ftp/xiaoming
chown xiaohong:tea /home/ftp/xiaohong
server vsftpd start
或者
server vsftpd restart
200 PORT command successful. Consider using PASV.
解决方式1:
采用被动命令登录
ftp -p serverIP
解决方式2:
登陆后输入命令
ftp> passive