centos上自带vsftpd
yum install -y vsftpd
useradd -s /sbin/nologin virftp #创建普通用户,指定用户不能登陆系统。
######设置虚拟账户,让虚拟账户映射系统里的管理用户,这样的话,就算把用户名和密码给别人,别人也无法登陆服务器。
vim /etc/vsftpd/vsftpd_login //内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行 testuser1 aminglinux
chmod 600 /etc/vsftpd/vsftpd_login
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db #将文本文件,转化成计算机使用的二进制文件。不能直接cat
mkdir /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf
vim testuser1 //加入如下内容 ####用户配置文件的特殊性:需要与用户的名称一致。
local_root=/home/virftp/testuser1 #虚拟用户的家目录 anonymous_enable=NO #是否允许匿名用户 write_enable=YES #是否允许可写 local_umask=022 #定义创建新文件或目录的权限,与系统的一致。 anon_upload_enable=NO #是否允许匿名用户可长传。 anon_mkdir_write_enable=NO #是否允许匿名用户可以创建目录,并且写。 idle_session_timeout=600 #空闲时间超过600s,则需要重新登录。 data_connection_timeout=120 #数据传输的超时时间。 max_clients=10 #最大的客户端
####创建虚拟用户的家目录。
mkdir /home/virftp/testuser1
touch /home/virftp/testuser1/aming.txt
chown -R virftp:virftp /home/virftp #需要将权限给virftp
vim /etc/pam.d/vsftpd //在最前面加上 auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login #定义密码文件所存在的位置。 account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login #标注的文件需要存在
vim /etc/vsftpd/vsftpd.conf
将anonymous_enable=YES 改为 anonymous_enable=NO
将#anon_upload_enable=YES 改为 anon_upload_enable=NO
将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO
再增加如下内容
chroot_local_user=YES
guest_enable=YES
guest_username=virftp #告诉服务虚拟用户是什么
virtual_use_local_privs=YES #告诉服务现在使用的是虚拟用户
user_config_dir=/etc/vsftpd/vsftpd_user_conf #定义虚拟用户配置文件所存在的目录
allow_writeable_chroot=YES
systemctl start vsftpd //启动vsftpd服务 #监听21端口
yum install -y lftp
lftp ftpuser1@127.0.0.1
执行命令ls,看是否正常输出 ###? 问号可以查看使用那些命令 若不正常查看日志/var/log/messages和/var/log/secure
windows下安装filezilla客户端软件,进行测试 #filezilla client客户端开源软件。 get 是下载,下载到当前目录 xshell 连接 sftp的端口也是22端口 ###权限不够