68 lines
1.7 KiB
Bash
Executable File
68 lines
1.7 KiB
Bash
Executable File
#!/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 "重新登录终端后环境变量将被清除。"
|