虚拟机CentOS7脚本安装FTP

1 篇文章 1 订阅
1 篇文章 1 订阅

 该脚本仅仅完成了匿名访问 由于本人做这个项目的时候遇到了太多问题 也可能是弟弟太菜了 特此专门编写一章来记录这次学习历程

1 关闭防火墙和selinux

systemctl stop firewalld  #关闭防火墙

用getenforce获取selinux状态

如果selinux状态不为disabled 就修改/etc/selinux/config

将SELINUX=enforcing/SELINUX=permissive 改为SELINUX=disabled 然后重启 使SeLinux生效

2 安装和启动FTP

yum install vsftpd -y #安装vsftp

systemctl start vsftpd #开启vsftp

systemctl status vsftpd | grep Active | awk '{print $2}' #查看回显是否为active

3 配置vsftp

vsftpd的配置文件在/etc/vsftpd/vsftpd.conf下

vsftpd默认的共享文件夹为/var/ftp下的目录

这里一共三个点

a. 配置vsftpd.conf

vsftpd.conf配置里面的相关功能是以注释为开关的 所以开启就是去掉注释 关闭就是添加注释

打开anon_upload_enable=YES                 #功能为打开匿名用户的上传权限

打开anon_mkdir_write_enable=YES         #功能为打开匿名用户创建目录的权限

echo "anon_other_write_enable=YES" >> /etc/vsftpd/vsftpd.conf    #让匿名用户能删除和重命名

echo "anon_umask=000" >> /etc/vsftpd/vsftpd.conf

这里涉及一个安全问题linux系统文件权限分为421 4是r 读取权限  2是w 写入权限 1是x 执行权限这段代码就是如果你上传一个文件默认为777权限 添加这段代码就是777-000=777 可以通过这段代码更改匿名用户上传文件的权限

b. /var/ftp的权限

vsftpd会自动创建一个pub目录 匿名用户无法对其进行操作 这里我们创建一个目录并给予777权限

mkdir -m 777 /var/ftp/upload

chmod -R 777 /var/ftp                 #使其权限全为777

chmod a-w /var/ftp                      #这里是vsftp的安全问题 好像是18年更新后必须得这样才能成功启动 不然会显示500错误

c. 重启vsftp使其配置生效

ststemctl restart vsftpd

然后再次通过1来判断是否正常运行

下面代码是一键部署ftp 在虚拟机里执行后回到windows ping一下虚拟机 ping通了就可以进行ftp连接虚拟机了 也可以通过cmd 输入ftp IP 来检测 用户名 anonymous 密码为空 连接成功就ok了 可以实现windows和虚拟机linux的文件互传了

#!/bin/bash
#######################################
#Description	: FTP Install Script
#Author			: smh/873990866@qq.com
#Date			: 2021_10_21
#Version		: 1.5
#######################################

#STOP SELINUX_STATUS AND STOP FIREWALL
if [ "$(getenforce)" == "Enforcing" ];then	
	echo "SeLinux Status Is Enforcing,Please Reboot The computer to make SeLinux Stop."
	sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
	exit 0
elif [ "$(getenforce)" == "Permissive" ];then
	echo "SeLinux Status Is permissive,Please Reboot The computer to make SeLinux Stop."
	sed -i "s/SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config
	exit 0
else
	echo "SeLinux Is Stop."
fi
systemctl stop firewalld
echo "Firewall Is Stop."

#INSTALL AND START VSFTP
install_start_vsftpd () {
	yum -y install vsftpd >& /dev/null
	#打开匿名用户创建目录的权限
	sed -i 's/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g' /etc/vsftpd/vsftpd.conf
	#打开匿名用户的上传权限
	sed -i 's/#anon_upload_enable=YES/anon_upload_enable=YES/g' /etc/vsftpd/vsftpd.conf
	#创建匿名用户的登录目录
	mkdir -m 777 /var/ftp/upload
	chmod -R 777 /var/ftp
	chmod a-w /var/ftp
	#设置匿名用户的登录目录
	#echo "anon_root=/var/ftp/upload" >> /etc/vsftpd/vsftpd.conf
	
	#打开匿名用户的删除和重命名权限
	echo "anon_other_write_enable=YES" >> /etc/vsftpd/vsftpd.conf
	echo "anon_umask=000" >> /etc/vsftpd/vsftpd.conf
	
	systemctl start vsftpd
	VSFTPD_STATUS=`systemctl status vsftpd | grep Active | awk '{print $2,$3}'`
	if [ "${VSFTPD_STATUS}" == "active (running)" ];then
		echo "vsftpd服务安装并启动成功"
	else
		echo "vsftpd安装成功但启动失败"
		exit 0
	fi
}

install_start_vsftpd

 这里仅仅是匿名访问 后续如果有时间的话会更新添加用户密码然后通过pam认证来通过账号密码连接ftp 如果要开机自启的话可以百度ftp开机自启 如果有需要截图 方便理解的话可以给我留言 我看到了会添加照片 方便你们理解  下课了 不写了 大佬轻喷

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值