前言
虽然用户可采用多种方式来传送文件,但是FTP凭借其简单高效的特性,仍然是跨平台直接传送文件的主要方式。
1、准备安装
安装vsftpd
yum install vsftpd
安装ftp命令行程序
yum install ftp
此时可以直接启动service vsftpd restart
以匿名方式登录进行测试(默认在/var/ftp下,匿名用户为:ftp或anonymous)
2、配置文件
cd /etc/vsftpd
ll
ftpusers文件用于指定不能访问vsftpd服务器的用户列表,提高系统安全。
user_list文件用于保留用户列表,其是否起效,取决于vsftpd.conf文件中的userlist_deny参数,当userlist_deny=YES时,user_list文件中的用户无权访问vsftpd服务器,当userlist_deny=NO,才有权访问vsftpd服务器。
3、配置vsftpd服务器
vsftpd守护进程运行时,首先从vsftpd.conf文件获取配置信息,然后配合ftpusers和user_list文件决定可以访问的用户列表。
4、例题
配置vsftpd服务器,要求只允许匿名用户登录。匿名用户可在/var/ftp/pub目录中新建目录、上传和下载文件
cd /etc/vsftpd
vim vsftpd.conf
将以下注释去掉:
添加以下语句:
anon_umask=022
anon_other_write_enable=YES
修改/var/ftp/pub目录的权限
cd /var/ftp
chmod 777 pub
修改后的目录权限
重新启动vsftpd服务
service vsftpd restart
在使用put上传文件时,注意要切换到需要上传文件的目录中,下载文件时,也是在进行连接ftp命令时所在的那个目录。(注意要添加权限)
配置vsftpd服务器,实现本地用户访问配置
mkdir -p /var/www/web1
chmod -R 757 /var/www/web1
useradd test
echo 123 | passwd --stdin test
chown -R test /var/www/web1
echo "www.zjxy.edu 's web" > /var/www/web1/本地用户访问ftp.txt
重新启动vsftpd服务
禁止切换到其他目录
设置所有本地用户都不可切换到主目录以外的目录
设置指定的用户不可切换到主目录以外的目录
在etc目录下创建chroot_list文件,其文件格式与user_list相同,每个用户各占一行。
设置欢迎信息
虚拟访问配置
创建虚拟用户对应的本地用户及目录
useradd user2
mkdir -p /ftp/public /var/www/web2
echo "test file" > /ftp/public/f1.txt
echo "test file" > /var/www/web2/w2.txt
chown user2 /ftp/public/ /var/www/web2/
chmod -R 755 /ftp/public/ /var/www/web2/
创建虚拟用户文件
vim /etc/vsftpd/vuser.list
#一行用户名,下一行密码
zs
123
ls
abc
转换虚拟用户文件
db_load -T -t hash -f /etc/vsftpd/vuser.list /etc/vsftpd/vuser.db
chmod 600 /etc/vsftpd/vuser.*
创建用于用户登录时的PAM文件
cd /etc/pam.d/
cp -p vsftpd vuser.vu
vim vuser.vu
#第一行 添加以下两行
auth sufficient pam_userdb.so db=/etc/vsftpd/vuser
account sufficient pam_userdb.so db=/etc/vsftpd/vuser
修改配置文件
vim /etc/vsftpd/vsftpd.conf
local_enable=YES
pam_service_name=vuser.vu
guest_enable=YES
guest_username=user2
user_config_dir=/etc/vsftpd/vconfig
virtual_use_local_privs=YES
虚拟用户配置专用文件
mkdir /etc/vsftpd/vconfig
vim /etc/vsftpd/vconfig/z3
local_root=/ftp/public/
anon_world_readable_only=YES
write_enable=NO
anon_max_rate=500000
vim /etc/vsftpd/vconfig/l4
local_root=/var/www/web2/
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_max_rate=1000000
完成上述配置重启服务即可测试
service vsftpd restart