#!/bin/bash set -e # 必须以 root 运行 if [ "$(id -u)" -ne 0 ]; then echo "❌ 请以 root 用户执行此脚本" exit 1 fi SERVICE_NAME="bash-product-id.service" UUID_DIR="/etc/bash_product" UUID_FILE="$UUID_DIR/BASH_PRODUCT_ID" SYSTEMD_SERVICE_FILE="/etc/systemd/system/$SERVICE_NAME" echo "🔧 开始卸载 BASH_PRODUCT_ID 服务..." # 停止并禁用 systemd 服务 if systemctl is-active "$SERVICE_NAME" &>/dev/null; then echo "停止 systemd 服务..." systemctl stop "$SERVICE_NAME" fi if systemctl is-enabled "$SERVICE_NAME" &>/dev/null; then echo "禁用 systemd 服务..." systemctl disable "$SERVICE_NAME" fi # 删除 systemd 服务文件 if [ -f "$SYSTEMD_SERVICE_FILE" ]; then echo "删除 systemd 服务文件..." rm -f "$SYSTEMD_SERVICE_FILE" fi # 删除 UUID 目录及文件 if [ -d "$UUID_DIR" ]; then echo "删除 UUID 目录及文件..." rm -rf "$UUID_DIR" fi # 清理 PAM 环境变量配置 echo "清理 PAM 环境变量配置..." sed -i '/BASH_PRODUCT_ID/d' /etc/security/pam_env.conf # 清理全局环境变量配置 echo "清理全局环境变量配置..." sed -i '/BASH_PRODUCT_ID/d' /etc/environment # 删除 profile.d 脚本 if [ -f "/etc/profile.d/bash-product-id.sh" ]; then echo "删除 profile.d 脚本..." rm -f "/etc/profile.d/bash-product-id.sh" fi # 清理 bash.bashrc 配置 echo "清理 bash.bashrc 配置..." # 删除包含 BASH_PRODUCT_ID 的行及其前后的空行 sed -i '/# BASH_PRODUCT_ID/,/^fi$/d' /etc/bash.bashrc sed -i '/^$/N;/^\n$/D' /etc/bash.bashrc # 重新加载 systemd 配置 systemctl daemon-reload echo "" echo "✅ 卸载完成!" echo "所有 BASH_PRODUCT_ID 相关配置已移除。" echo "重新登录终端后环境变量将被清除。"