在主Shell脚本文件里(必须以menu.sh命名)需要设计一个多操作选项的菜单,以便用户从中选择。在菜单中,自动实现以下功能: 1.创建用户选项。具体要求为当管理选择该选项后,系统允许管理员输入“用户名”,然后,自动创建Linux普通用户(密码默认为@Linux888)。 2.部署DNS服务器选项。具体要求为通过yum命令,自动化部署DNS服务器的服务;部署过程中,显示所安装的服务器版本号。 3.修改DNS服务器配置并测试使用该服务器。 4.防火墙配置选项。具体要求为当管理选择该选项后,系统允许管理员输入“端口号”及“on/off”操作,系统根据管理员的输入,开启或关闭指定的端口号。 5.退出系统选项。具体要求为当管理选择该选项后,系统退出。
时间: 2023-11-28 19:49:41 浏览: 177
以下是一个可能的实现:
```bash
#!/bin/bash
while true; do
clear
echo "请选择一个操作(输入相应数字):"
echo "1. 创建用户"
echo "2. 部署DNS服务器"
echo "3. 修改DNS服务器配置并测试"
echo "4. 防火墙配置"
echo "5. 退出系统"
read choice
case $choice in
1)
echo "请输入要创建的用户名:"
read username
sudo useradd -m -s /bin/bash "$username"
echo "$username:@Linux888" | sudo chpasswd
echo "成功创建用户$username,密码为@Linux888"
read -n1 -r -p "按任意键继续" key
;;
2)
sudo yum install -y bind bind-utils
echo "DNS服务器部署完成,版本号为$(named -v)"
read -n1 -r -p "按任意键继续" key
;;
3)
echo "请输入DNS服务器IP地址:"
read dns_ip
echo "请输入要测试的域名(例如:google.com):"
read domain
sudo sed -i "s/127.0.0.1/$dns_ip/g" /etc/resolv.conf
dig "$domain"
sudo sed -i "s/$dns_ip/127.0.0.1/g" /etc/resolv.conf
read -n1 -r -p "按任意键继续" key
;;
4)
echo "请输入要配置的端口号:"
read port
echo "请输入操作(on/off):"
read action
if [ "$action" == "on" ]; then
sudo firewall-cmd --add-port="$port"/tcp --permanent
sudo firewall-cmd --add-port="$port"/udp --permanent
sudo firewall-cmd --reload
echo "成功开启端口号$port"
elif [ "$action" == "off" ]; then
sudo firewall-cmd --remove-port="$port"/tcp --permanent
sudo firewall-cmd --remove-port="$port"/udp --permanent
sudo firewall-cmd --reload
echo "成功关闭端口号$port"
else
echo "无效操作"
fi
read -n1 -r -p "按任意键继续" key
;;
5)
echo "退出系统"
exit 0
;;
*)
echo "无效选项"
read -n1 -r -p "按任意键继续" key
;;
esac
done
```
注意事项:
- 脚本需要以 `#!/bin/bash` 开头,并且需要有执行权限。
- 脚本中使用了 `sudo` 命令,因此需要管理员权限才能运行。
- 在修改 DNS 服务器配置时,需要备份原始的 `/etc/resolv.conf` 文件,并在测试完成后恢复原始状态。
- 防火墙配置部分使用了 `firewall-cmd` 命令,需要系统支持并且需要安装相关软件包。
阅读全文