Linux中利用vsftpd服务实现匿名登录、本地用户登录、虚拟用户登录
1.利用yum安装
yum install vsftpd -y
yum install ftp -y
加上-y它就会一直安装不会再问是否安装某些东西
systemctl start vsftpd 启动服务
systemctl start ftp
2.创建共享目录
mkdir /opt/share
匿名登录
3.修改配置文件,由于配置文件内容太多,并且有很多是注释掉的,因此我们将需要的东西提取出来后重新命名使用
- cd /etc/vsftpd/ 先到该目录下
- ls 查看有什么文件
- grep -v ‘#’ /etc/vsftpd/vsftpd.conf >>a.conf 提取需要的东西出来命名为a.conf
- 将原来的vsftpd.conf 改名为aaaa.conf 可随意改但后缀一定要是.conf
mv vsftpd.conf aaaa.conf - 将刚才的文件a改为vsftpd.conf
mv a.conf vsftpd.conf - 编辑配置文件 vi vsftpd.conf
- 重启服务
systemctl restart vsftpd - 设置防火墙
firewall-cmd --add-service=ftp --permanent 让防火墙允许
firewall-cmd --reload 重新加载防火墙
firewall-cmd --list-all 用该句可以查看防火墙允许的内容
- 执行setenforce 0
- 修改权限 chmod 755 -R /opt/share 若权限为777的话是会登录失败的
- 测试
本地用户登录
4.创建用户
- useradd t100 -s /bin/nologin 我给我的用户取名t100
- passwd t100 为用户设置密码
- 编辑配置文件 vi vsftpd.conf
- 创建chroot_list
vi /etc/vsftpd/chroot_list
然后写入用户,例如我的就是直接写t100 - 再编辑pam.d底下的vsftpd文件
vi /etc/pam.d/vsftpd
- 重启服务systemctl restart vsftpd
- 测试
虚拟用户登录
5.每一位虚拟用户需要有一个对应的用户名
-
到vsftpd下
cd /etc/vsftpd -
创建一个文件用于写入虚拟用户和密码,奇数行为虚拟用户名,偶数行为密码,我创建两个用户
vi vuser.pwd
-
将vuser.pwd进行加密
db_load -T -t hash -f vuser.pwd vuser.db
-
为了安全起见把vuser.pwd删除并修改.db文件权限
rm -fr vuser.pwd
chmod 700 vuser.db -
修改pam.d下的配置文件
vi /etc/pam.d/vsftpd
-
创建共享目录
mkdir /opt/ttt -
修改权限
chmod 777 -R /opt/ttt -
随便写个文件
echo “this is ftp”>>/opt/ttt/test.txt -
修改配置文件
vi /etc/vsftpd/vsftpd.conf
-
编写用户访问的目录文件user_conf
cd /etc/vsftpd
mkdir user_conf
cd user_conf
vi zhangsan
vi li
-
重启服务
systemctl restart vsftpd -
执行setenforce 0
-
测试
- 每次开机的时候都需要去执行开启服务的语句,实属麻烦,用以下语句让服务每次随着虚拟机的开机而开机:systemctl enable +服务名 。例如开启vsftpd的那就是systemctl enable vsftpd
- 一个小tips,如果有时候发现登录失败,先执行一下setenforce 0 语句