Linux简单课程设计(用户,部署服务器,防火墙【端口号】)

 课程设计内容:

在主Shell脚本文件里(必须以menu.sh命名)需要设计一个多操作选项的菜单,以便用户从中选择。在菜单中,自动实现以下功能:

  1. 创建用户选项。具体要求为当管理选择该选项后,系统允许管理员输入“用户名”,然后,自动创建Linux普通用户(密码默认为@Linux888)。
  2. 部署服务器选项。具体要求为通过yum命令,自动化部署某种服务器的服务;部署过程中,显示所安装的服务器版本号。
  3. 修改服务器配置并测试使用该服务器。。
  4. 防火墙配置选项。具体要求为当管理选择该选项后,系统允许管理员输入“端口号”及“on/off”操作,系统根据管理员的输入,开启或关闭指定的端口号。
  5. 退出系统选项。具体要求为当管理选择该选项后,系统退出。

 中文摘要

本文主要介绍了HTTPD服务器的配置、Shell编程、防火墙设计和个人主页实现等几个关键技术。首先,HTTPD服务器是一种用于提供Web服务的软件,本文探讨了如何进行HTTPD的配置,包括如何修改HTTPD的配置文件以及如何启动和停止HTTPD服务等。其次,本文还介绍了Shell编程的基础知识和常用命令,以及如何使用Shell脚本实现一些简单的任务。接着,本文讲解了防火墙设计的重要性以及如何使用iptables来配置防火墙规则,以保护服务器的安全。最后,本文还介绍了如何实现个人主页,通过字符”*”加数字和汉字作为选项。总之,本文内容丰富,涵盖了多个关键技术,对于想要深入了解Web服务器和网络安全的读者具有一定的参考价值。

关键词:HTTPD配置 Shell编程 防火墙设计 个人主页实现

课程设计目的

《Linux操作系统》是计算机科学与技术相关专业的一门专业选修课程。该课程设计是集中实践性环节之一,是完成本课程学习后的一次全面的综合练习。其目的在于加深对Linux操作系统基本命令、Shell编程、关键服务部署及开发、网络安全等的理解和运用。为此,该课程设计涉及到上述各环节的内容,要求学生完成一个Linux操作系统项目的分析、设计、配置,测试的全过程,初步具备Linux操作系统使用的基本能力,加强课程学习中各种知识的综合应用能力和实践经验。

 所需知识基本原理

 Shell命令及编程简介

Shell是一种命令行解释器,它可以用于执行各种系统命令和脚本。Shell编程是一种脚本编程语言,它可以用于编写自动化任务和数据处理脚本。Shell 是一个用 C 语言编写的程序,它是用户使用 Linux的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务

用户管理简介

Linux用户管理是指在Linux操作系统中对用户账户进行管理,包括创建、修改、删除和授权等操作。Linux系统中,每个用户都有一个唯一的用户ID(UID)和一个所属组ID(GID),用户可以属于一个或多个组,用户的权限和访问控制都是基于这些ID来实现的。Linux用户管理工具包括命令行工具和图形界面工具,其中最常用的命令行工具包括useradd、usermod、userdel、passwd等,这些命令可以通过命令行参数来实现不同的功能,如创建用户、修改用户信息、删除用户、修改密码等。除了基本的用户管理,Linux系统还支持访问控制和权限管理,以实现更加复杂的用户身份验证和访问控制方案。

防火墙简介

防火墙是一种网络安全设备,用于监控和控制进出网络的流量。它可以过滤网络流量,根据预设的规则和策略,阻止或允许特定的流量通过。防火墙可以帮助保护计算机和网络免受恶意攻击,例如网络病毒、黑客攻击和恶意软件等。它也可以用于控制用户对特定网站和应用程序的访问权限,以维护企业网络的安全和稳定性。防火墙通常有硬件和软件两种形式,广泛应用于企业、政府机构和个人用户的网络安全保护中。

HTTPD服务器简介

httpd是Apache HTTP Server的官方名称,是一款开源的Web服务器软件。它是目前最流行的Web服务器之一,支持多种操作系统,包括Linux、Windows、macOS等。Apache HTTP Server支持HTTP、HTTPS和FTP等多种协议,具有高可靠性、性能优异、可扩展性强等优点,广泛应用于互联网、企业内部网络和个人网站等领域。同时,Apache HTTP Server还支持多种模块和插件,可以实现诸如反向代理、负载均衡、安全认证等高级功能

 系统流程图

4.3 功能实现

主菜单页面

图4.3.1  主菜单图

在管理员的权限下选择1,进行自动创建用户

图4.3.2 创建用户图

选择2,输入httpd,进行自动部署httpd服务器显示服务器名和版本号(之前已经装上了)

图4.3.2 部署服务器图

选择3,输入要删除的用户名,自动进行删除用户

图4.3.3 删除用户图

选择4,将httpd的端口改为8080并重启测试服务器是否正常

图4.3.4 修改服务器图

选择5,输入端口号,输入on打开8080端口

图4.3.5 防火墙设置图

选择6,退出系统

图4.3.5 退出系统图

课程设计总结

经过此次课程是设计,在创建用户选项,部署服务器选项,修改服务器配置并测试使用该服务器,防火墙配置选项,退出系统选项这些功能的实现和设置上我学到了许多东西。

让我对Linux有了一定的了解。我知道了Linux只是个内核。现在的Linux操作系统,都是用这么一个内核,加上其它的应用程序构成的。Linux最大的特点就是其开源性,这一点是十分难得的,这也是它能够存在到现在的原因之一,使其在金融、安全等部门有很重要的应用。

学习Linux,首先我们应该从基础开始学起。对Linux操作系统的功能、版本、特点,以及Linux系统安装和图形环境有较全面的了解。 Linux命令是必须学习的。虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。Linux是一个命令行组成的操作系统,精髓在命令行,学习如何在安全的环境中执行系统命令,包括有关文件、目录、文件系统、进程等概念,如何使用相应的命令对文件、目录、进程等进行管理,了解遇到问题时,如何找到帮助信息等。Linux常用命令,有echo 命令、date命令、passwd命令、file命令、ls命令、touch命令等。

创建用户选项,部署服务器选项,修改服务器配置并测试使用该服务器,防火墙配置选项,退出系统选项

源码下方

#! /bin/bash

function show()
{
clear;
echo "****************************************************************************";
echo "***                       欢迎使用用户管理系统                            ***";
echo "***                    1 : 创建用户                                      ***";
echo "***                    2 : 部署服务器                                    ***";
echo "***                    3 : 删除用户                                      ***";
echo "***                    4 : 修改httpd服务器                               ***";
echo "***                    5 : 防火墙配置                                    ***";
echo "***                    6 : 退出系统                                      ***";
echo "****************************************************************************";
echo "请为您需要的功能选择号码!";
echo "请输入你的选择:";
}

function Create_users()
{
read -p "请输入要创建的用户名:" username

# 判断用户是否已存在
if id "$username" >/dev/null 2>&1; then
    echo "用户 $username 已存在!"
    exit 1
fi

# 创建用户
useradd -m "$username"

# 设置默认密码
echo "$username:@Linux888" | chpasswd

# 输出创建结果
if id "$username" >/dev/null 2>&1; then
    echo "用户 $username 创建成功!默认密码为 @Linux888"
else
    echo "用户 $username 创建失败!"
fi
}

function Deploying_servers()
{
    # 输入要部署的服务名
read -p "请输入要部署的服务名:" service_name

# 使用yum安装服务
yum install -y $service_name

# 显示安装的版本号
version=$(yum list installed $service_name | grep -oP '\d+\.\d+\.\d+')
echo "已安装 $service_name 版本号为 $version"
}

function Delete_a_user()
{
       user="$1"
 
    userdel "$user" # 删除用户
     
    if [[ "$?" == 0 ]];
       then
        echo "已经删除${user}用户"
    fi
}

function Modify_server()
{
# 修改httpd.conf配置文件
sed -i 's/Listen 80/Listen 8080/g' /etc/httpd/conf/httpd.conf

# 重启httpd服务
systemctl restart httpd

# 测试服务器是否正常工作
if curl -s localhost | grep -q 'server is running'; then
  echo "Server is working properly"
else
  echo "Server is not working properly"
fi
}


function Fire_wall(){
# 判断是否为管理员
if [[ $EUID -ne 0 ]]; then
echo "请使用管理员权限运行该脚本!"
exit 1
fi

# 获取管理员输入的端口号和操作(on/off)
read -p "请输入端口号:" port
read -p "请输入操作(on/off):" action

# 判断操作是否合法
if [ $action != "on" ] && [ $action != "off" ]
then
    echo "操作不合法,只能输入 on 或 off"
    exit 1
fi

# 开启或关闭指定的端口号
if [ $action == "on" ]
then
    firewall-cmd --zone=public --add-port=$port/tcp --permanent
    firewall-cmd --reload
    echo "端口号 $port 已开启"
else
    firewall-cmd --zone=public --remove-port=$port/tcp --permanent
    firewall-cmd --reload
    echo "端口号 $port 已关闭"
fi
}

function Quit()
{
                        echo "Bye bye!";
                        exit 0;
}

function main()
{
for i in $(seq 1 100)
do
show;
read choice;
case $choice in
        1)Create_users;;
        2)Deploying_servers;;
        3)
	read -p "请输入需要删除的用户名:" uname
	Delete_a_user "$uname"
	;;
        4)Modify_server;;
        
	5)Fire_wall;;
	6)Quit;;
	*)echo "Incorrect input!";;
esac
read delay;
if [ $i -eq 100 ];
then
        echo "error";
        clear;
        break;
fi
done
}
main;

猜你喜欢

转载自blog.csdn.net/qq_72505850/article/details/130947888