This commit is contained in:
parent
e642eacf17
commit
4376bfd954
Binary file not shown.
18
install.sh
18
install.sh
|
|
@ -8,6 +8,15 @@ if [[ $EUID -ne 0 ]]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# === 执行 install_product_id_generator.sh ===
|
||||||
|
if [[ -x ./script/install_product_id_generator.sh ]]; then
|
||||||
|
echo "🚀 执行 install_product_id_generator.sh..."
|
||||||
|
./script/install_product_id_generator.sh || { echo "❌ install_product_id_generator.sh 执行失败"; exit 1; }
|
||||||
|
echo "✅ install_product_id_generator.sh 执行完成"
|
||||||
|
else
|
||||||
|
echo "❌ 找不到或无法执行 ./script/install_product_id_generator.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
INSTALL_DIR="/etc/exec_hook"
|
INSTALL_DIR="/etc/exec_hook"
|
||||||
|
|
||||||
rm -rf "$INSTALL_DIR"
|
rm -rf "$INSTALL_DIR"
|
||||||
|
|
@ -83,12 +92,3 @@ echo "✅ 安装完成:"
|
||||||
echo " - 后端服务和拦截库已部署到 $INSTALL_DIR"
|
echo " - 后端服务和拦截库已部署到 $INSTALL_DIR"
|
||||||
echo " - 登录 shell 时将执行 backend_service 并注入 intercept.so"
|
echo " - 登录 shell 时将执行 backend_service 并注入 intercept.so"
|
||||||
echo "📢 请重新登录测试效果(例如重新 SSH 登录)"
|
echo "📢 请重新登录测试效果(例如重新 SSH 登录)"
|
||||||
|
|
||||||
# === 执行 install_product_id_generator.sh ===
|
|
||||||
if [[ -x ./script/install_product_id_generator.sh ]]; then
|
|
||||||
echo "🚀 执行 install_product_id_generator.sh..."
|
|
||||||
./script/install_product_id_generator.sh || { echo "❌ install_product_id_generator.sh 执行失败"; exit 1; }
|
|
||||||
echo "✅ install_product_id_generator.sh 执行完成"
|
|
||||||
else
|
|
||||||
echo "❌ 找不到或无法执行 ./script/install_product_id_generator.sh"
|
|
||||||
fi
|
|
||||||
|
|
|
||||||
13
prepare.sh
13
prepare.sh
|
|
@ -6,7 +6,8 @@ set -e
|
||||||
SOURCE_MAIN="../bash_go_service/main"
|
SOURCE_MAIN="../bash_go_service/main"
|
||||||
SOURCE_CONFIG="../bash_go_service/config/config.yaml"
|
SOURCE_CONFIG="../bash_go_service/config/config.yaml"
|
||||||
SOURCE_INSTALL_SCRIPT="../bash_go_service/install_product_id_generator.sh"
|
SOURCE_INSTALL_SCRIPT="../bash_go_service/install_product_id_generator.sh"
|
||||||
SOURCE_UNINSTALL_SCRIPT="../bash_go_service/install_product_id_generator.sh"
|
SOURCE_UNINSTALL_SCRIPT="../bash_go_service/uninstall_product_id_generator.sh"
|
||||||
|
SOURCE_REG_SCRIPT="../bash_go_service/generate_bash_product_id.sh"
|
||||||
SOURCE_INTERCEPT_SO="../execve_hook/build/intercept.so"
|
SOURCE_INTERCEPT_SO="../execve_hook/build/intercept.so"
|
||||||
|
|
||||||
DEST_DIST="./dist"
|
DEST_DIST="./dist"
|
||||||
|
|
@ -15,6 +16,7 @@ DEST_CONFIG="$DEST_DIST/config"
|
||||||
DEST_SCRIPT="./script"
|
DEST_SCRIPT="./script"
|
||||||
DEST_INSTALL_SCRIPT="$DEST_SCRIPT/install_product_id_generator.sh"
|
DEST_INSTALL_SCRIPT="$DEST_SCRIPT/install_product_id_generator.sh"
|
||||||
DEST_UNINSTALL_SCRIPT="$DEST_SCRIPT/uninstall_product_id_generator.sh"
|
DEST_UNINSTALL_SCRIPT="$DEST_SCRIPT/uninstall_product_id_generator.sh"
|
||||||
|
DEST_REG_SCRIPT="$DEST_SCRIPT/generate_bash_product_id.sh"
|
||||||
|
|
||||||
# 检查 main 是否存在且为可执行文件
|
# 检查 main 是否存在且为可执行文件
|
||||||
if [[ ! -x "$SOURCE_MAIN" ]]; then
|
if [[ ! -x "$SOURCE_MAIN" ]]; then
|
||||||
|
|
@ -69,6 +71,15 @@ else
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# 拷贝 generate_bash_product_id.sh(强制覆盖)
|
||||||
|
if [[ -r "$SOURCE_REG_SCRIPT" ]]; then
|
||||||
|
cp -f "$SOURCE_REG_SCRIPT" "$DEST_REG_SCRIPT"
|
||||||
|
echo "已复制 generate_bash_product_id.sh 到 $DEST_SCRIPT/"
|
||||||
|
else
|
||||||
|
echo "错误:$SOURCE_REG_SCRIPT 不可读取或不存在"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# 拷贝 intercept.so
|
# 拷贝 intercept.so
|
||||||
if [[ -r "$SOURCE_INTERCEPT_SO" ]]; then
|
if [[ -r "$SOURCE_INTERCEPT_SO" ]]; then
|
||||||
cp "$SOURCE_INTERCEPT_SO" "$DEST_DIST/"
|
cp "$SOURCE_INTERCEPT_SO" "$DEST_DIST/"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
UUID_FILE="/etc/bash_product/BASH_PRODUCT_ID"
|
||||||
|
REGISTER_SERVER_URL="https://bash-backend.zustmyy.top/endpoint/register"
|
||||||
|
|
||||||
|
# 如果 UUID 文件不存在,就生成
|
||||||
|
if [ ! -f "$UUID_FILE" ]; then
|
||||||
|
UUID=$(cat /proc/sys/kernel/random/uuid)
|
||||||
|
echo "$UUID" > "$UUID_FILE"
|
||||||
|
chmod 644 "$UUID_FILE"
|
||||||
|
|
||||||
|
# 收集硬件信息
|
||||||
|
CPU_MODEL=$(lscpu | grep "Model name" | awk -F: '{print $2}' | sed 's/^ *//')
|
||||||
|
ARCHITECTURE=$(uname -m)
|
||||||
|
PCIE_DEVICES_RAW=$(timeout 3s lspci || true)
|
||||||
|
|
||||||
|
if [ -z "$CPU_MODEL" ] || [ -z "$ARCHITECTURE" ]; then
|
||||||
|
echo "❌ 无法收集到CPU或系统架构信息,注册终止"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$PCIE_DEVICES_RAW" ]; then
|
||||||
|
PCIE_DEVICES_JSON="[]"
|
||||||
|
else
|
||||||
|
PCIE_DEVICES_JSON="["
|
||||||
|
while IFS= read -r line; do
|
||||||
|
ESCAPED_LINE=$(echo "$line" | sed 's/"/\\"/g')
|
||||||
|
PCIE_DEVICES_JSON+="\"$ESCAPED_LINE\","
|
||||||
|
done <<< "$PCIE_DEVICES_RAW"
|
||||||
|
PCIE_DEVICES_JSON="${PCIE_DEVICES_JSON%,}]"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 发送注册
|
||||||
|
JSON_PAYLOAD=$(cat <<EOF
|
||||||
|
{
|
||||||
|
"BASH_UUID": "$UUID",
|
||||||
|
"cpu_model": "$(echo "$CPU_MODEL" | sed 's/"/\\"/g')",
|
||||||
|
"architecture": "$ARCHITECTURE",
|
||||||
|
"pcie_devices": $PCIE_DEVICES_JSON
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
|
||||||
|
curl -s -o /dev/null -w "%{http_code}" \
|
||||||
|
--connect-timeout 5 --max-time 10 \
|
||||||
|
-X POST "$REGISTER_SERVER_URL" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d "$JSON_PAYLOAD"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
@ -2,59 +2,64 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# 必须以 root 运行
|
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"
|
||||||
|
LOCAL_SCRIPT="./script/generate_bash_product_id.sh"
|
||||||
|
TARGET_SCRIPT="/usr/local/bin/generate_bash_product_id.sh"
|
||||||
|
|
||||||
|
# 必须 root
|
||||||
if [ "$(id -u)" -ne 0 ]; then
|
if [ "$(id -u)" -ne 0 ]; then
|
||||||
echo "❌ 请以 root 用户执行此脚本"
|
echo "❌ 请以 root 用户执行此脚本"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SERVICE_NAME="bash-product-id.service"
|
echo "🔧 安装 BASH_PRODUCT_ID 相关组件..."
|
||||||
UUID_DIR="/etc/bash_product"
|
|
||||||
UUID_FILE="$UUID_DIR/BASH_PRODUCT_ID"
|
|
||||||
SYSTEMD_SERVICE_FILE="/etc/systemd/system/$SERVICE_NAME"
|
|
||||||
|
|
||||||
echo "🔧 配置 BASH_PRODUCT_ID 服务..."
|
# 检查源脚本
|
||||||
|
if [ ! -f "$LOCAL_SCRIPT" ]; then
|
||||||
|
echo "❌ 当前目录没有 $LOCAL_SCRIPT,无法继续"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# 创建必要的目录
|
# 拷贝生成脚本
|
||||||
|
cp "$LOCAL_SCRIPT" "$TARGET_SCRIPT"
|
||||||
|
chmod +x "$TARGET_SCRIPT"
|
||||||
|
echo "✅ 复制 $LOCAL_SCRIPT 到 $TARGET_SCRIPT"
|
||||||
|
|
||||||
|
# 创建必要目录
|
||||||
mkdir -p "$UUID_DIR"
|
mkdir -p "$UUID_DIR"
|
||||||
|
|
||||||
# 创建 systemd 服务文件
|
# 写 systemd 服务
|
||||||
if [ ! -f "$SYSTEMD_SERVICE_FILE" ]; then
|
cat > "$SYSTEMD_SERVICE_FILE" <<EOL
|
||||||
cat > "$SYSTEMD_SERVICE_FILE" <<EOL
|
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Generate BASH_PRODUCT_ID if not exists
|
Description=Generate BASH_PRODUCT_ID if not exists and register
|
||||||
After=local-fs.target
|
After=local-fs.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
RemainAfterExit=yes
|
RemainAfterExit=yes
|
||||||
ExecStart=/bin/bash -c 'UUID_FILE=/etc/bash_product/BASH_PRODUCT_ID; \
|
ExecStart=$TARGET_SCRIPT
|
||||||
if [ ! -f "\$UUID_FILE" ]; then \
|
|
||||||
UUID=\$(cat /proc/sys/kernel/random/uuid); \
|
|
||||||
echo "\$UUID" > "\$UUID_FILE"; \
|
|
||||||
chmod 644 "\$UUID_FILE"; \
|
|
||||||
fi'
|
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOL
|
EOL
|
||||||
echo "✅ systemd 服务文件已创建。"
|
echo "✅ 写入 systemd 服务文件 $SYSTEMD_SERVICE_FILE"
|
||||||
fi
|
|
||||||
|
|
||||||
# 1. 配置PAM环境变量
|
# 配置 PAM 环境变量
|
||||||
echo "配置 PAM 环境变量..."
|
|
||||||
if ! grep -q "BASH_PRODUCT_ID" /etc/security/pam_env.conf; then
|
if ! grep -q "BASH_PRODUCT_ID" /etc/security/pam_env.conf; then
|
||||||
echo 'BASH_PRODUCT_ID DEFAULT="unset" OVERRIDE=`cat /etc/bash_product/BASH_PRODUCT_ID 2>/dev/null || echo "unset"`' >> /etc/security/pam_env.conf
|
echo 'BASH_PRODUCT_ID DEFAULT="unset" OVERRIDE=`cat /etc/bash_product/BASH_PRODUCT_ID 2>/dev/null || echo "unset"`' >> /etc/security/pam_env.conf
|
||||||
|
echo "✅ 配置 PAM 环境变量 (/etc/security/pam_env.conf)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 2. 配置全局环境变量
|
# 配置 /etc/environment
|
||||||
echo "配置 /etc/environment..."
|
|
||||||
grep -v "BASH_PRODUCT_ID" /etc/environment > /etc/environment.tmp || true
|
grep -v "BASH_PRODUCT_ID" /etc/environment > /etc/environment.tmp || true
|
||||||
echo 'BASH_PRODUCT_ID=$(cat /etc/bash_product/BASH_PRODUCT_ID 2>/dev/null || echo "unset")' >> /etc/environment.tmp
|
echo 'BASH_PRODUCT_ID=$(cat /etc/bash_product/BASH_PRODUCT_ID 2>/dev/null || echo "unset")' >> /etc/environment.tmp
|
||||||
mv /etc/environment.tmp /etc/environment
|
mv /etc/environment.tmp /etc/environment
|
||||||
|
echo "✅ 配置 /etc/environment"
|
||||||
|
|
||||||
# 3. 配置profile.d脚本
|
# 配置 /etc/profile.d 脚本
|
||||||
echo "配置 profile.d 脚本..."
|
|
||||||
cat > /etc/profile.d/bash-product-id.sh <<'EOL'
|
cat > /etc/profile.d/bash-product-id.sh <<'EOL'
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
if [ -f "/etc/bash_product/BASH_PRODUCT_ID" ]; then
|
if [ -f "/etc/bash_product/BASH_PRODUCT_ID" ]; then
|
||||||
|
|
@ -64,9 +69,9 @@ else
|
||||||
fi
|
fi
|
||||||
EOL
|
EOL
|
||||||
chmod +x /etc/profile.d/bash-product-id.sh
|
chmod +x /etc/profile.d/bash-product-id.sh
|
||||||
|
echo "✅ 配置 /etc/profile.d/bash-product-id.sh"
|
||||||
|
|
||||||
# 4. 配置bash.bashrc
|
# 配置 bash.bashrc
|
||||||
echo "配置 /etc/bash.bashrc..."
|
|
||||||
BASHRC_CONFIG='
|
BASHRC_CONFIG='
|
||||||
# BASH_PRODUCT_ID environment variable
|
# BASH_PRODUCT_ID environment variable
|
||||||
if [ -f "/etc/bash_product/BASH_PRODUCT_ID" ]; then
|
if [ -f "/etc/bash_product/BASH_PRODUCT_ID" ]; then
|
||||||
|
|
@ -74,27 +79,26 @@ if [ -f "/etc/bash_product/BASH_PRODUCT_ID" ]; then
|
||||||
else
|
else
|
||||||
export BASH_PRODUCT_ID="unset"
|
export BASH_PRODUCT_ID="unset"
|
||||||
fi'
|
fi'
|
||||||
|
|
||||||
if ! grep -q "BASH_PRODUCT_ID" /etc/bash.bashrc; then
|
if ! grep -q "BASH_PRODUCT_ID" /etc/bash.bashrc; then
|
||||||
echo "$BASHRC_CONFIG" >> /etc/bash.bashrc
|
echo "$BASHRC_CONFIG" >> /etc/bash.bashrc
|
||||||
|
echo "✅ 配置 /etc/bash.bashrc"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 重新加载 systemd 配置并启用服务
|
# 重载 systemd & 启用服务
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
systemctl enable "$SERVICE_NAME"
|
systemctl enable "$SERVICE_NAME"
|
||||||
systemctl start "$SERVICE_NAME"
|
systemctl start "$SERVICE_NAME"
|
||||||
|
echo "✅ systemd 服务已启用并启动"
|
||||||
|
|
||||||
|
# 应用环境变量
|
||||||
|
source /etc/profile.d/bash-product-id.sh
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "✅ 配置完成!"
|
echo "🎉 安装完成!当前 BASH_PRODUCT_ID 设置:"
|
||||||
echo "当前设置:"
|
|
||||||
if [ -f "$UUID_FILE" ]; then
|
if [ -f "$UUID_FILE" ]; then
|
||||||
echo "BASH_PRODUCT_ID=$(cat $UUID_FILE)"
|
BASH_PRODUCT_ID=$(cat "$UUID_FILE")
|
||||||
else
|
echo "BASH_PRODUCT_ID=$BASH_PRODUCT_ID"
|
||||||
|
else
|
||||||
echo "BASH_PRODUCT_ID=unset"
|
echo "BASH_PRODUCT_ID=unset"
|
||||||
fi
|
fi
|
||||||
echo ""
|
echo ""
|
||||||
echo "重新登录终端后环境变量将自动加载。"
|
|
||||||
echo "立即生效请执行以下任一命令:"
|
|
||||||
echo "source /etc/bash.bashrc"
|
|
||||||
echo "source /etc/profile.d/bash-product-id.sh"
|
|
||||||
echo "source /etc/environment"
|
|
||||||
|
|
|
||||||
|
|
@ -9,92 +9,59 @@ if [ "$(id -u)" -ne 0 ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SERVICE_NAME="bash-product-id.service"
|
SERVICE_NAME="bash-product-id.service"
|
||||||
UUID_DIR="/etc/bash_product"
|
UUID_DIR="/etc/bash_product"
|
||||||
UUID_FILE="$UUID_DIR/BASH_PRODUCT_ID"
|
UUID_FILE="$UUID_DIR/BASH_PRODUCT_ID"
|
||||||
SYSTEMD_SERVICE_FILE="/etc/systemd/system/$SERVICE_NAME"
|
SYSTEMD_SERVICE_FILE="/etc/systemd/system/$SERVICE_NAME"
|
||||||
|
|
||||||
echo "🔧 配置 BASH_PRODUCT_ID 服务..."
|
echo "🔧 开始卸载 BASH_PRODUCT_ID 服务..."
|
||||||
|
|
||||||
# 创建必要的目录
|
# 停止并禁用 systemd 服务
|
||||||
mkdir -p "$UUID_DIR"
|
if systemctl is-active "$SERVICE_NAME" &>/dev/null; then
|
||||||
|
echo "停止 systemd 服务..."
|
||||||
# 创建 systemd 服务文件
|
systemctl stop "$SERVICE_NAME"
|
||||||
if [ ! -f "$SYSTEMD_SERVICE_FILE" ]; then
|
|
||||||
cat > "$SYSTEMD_SERVICE_FILE" <<EOL
|
|
||||||
[Unit]
|
|
||||||
Description=Generate BASH_PRODUCT_ID if not exists
|
|
||||||
After=local-fs.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=oneshot
|
|
||||||
RemainAfterExit=yes
|
|
||||||
ExecStart=/bin/bash -c 'UUID_FILE=/etc/bash_product/BASH_PRODUCT_ID; \
|
|
||||||
if [ ! -f "\$UUID_FILE" ]; then \
|
|
||||||
UUID=\$(cat /proc/sys/kernel/random/uuid); \
|
|
||||||
echo "\$UUID" > "\$UUID_FILE"; \
|
|
||||||
chmod 644 "\$UUID_FILE"; \
|
|
||||||
fi'
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOL
|
|
||||||
echo "✅ systemd 服务文件已创建。"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 1. 配置PAM环境变量
|
if systemctl is-enabled "$SERVICE_NAME" &>/dev/null; then
|
||||||
echo "配置 PAM 环境变量..."
|
echo "禁用 systemd 服务..."
|
||||||
if ! grep -q "BASH_PRODUCT_ID" /etc/security/pam_env.conf; then
|
systemctl disable "$SERVICE_NAME"
|
||||||
echo 'BASH_PRODUCT_ID DEFAULT="unset" OVERRIDE=`cat /etc/bash_product/BASH_PRODUCT_ID 2>/dev/null || echo "unset"`' >> /etc/security/pam_env.conf
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 2. 配置全局环境变量
|
# 删除 systemd 服务文件
|
||||||
echo "配置 /etc/environment..."
|
if [ -f "$SYSTEMD_SERVICE_FILE" ]; then
|
||||||
grep -v "BASH_PRODUCT_ID" /etc/environment > /etc/environment.tmp || true
|
echo "删除 systemd 服务文件..."
|
||||||
echo 'BASH_PRODUCT_ID=$(cat /etc/bash_product/BASH_PRODUCT_ID 2>/dev/null || echo "unset")' >> /etc/environment.tmp
|
rm -f "$SYSTEMD_SERVICE_FILE"
|
||||||
mv /etc/environment.tmp /etc/environment
|
|
||||||
|
|
||||||
# 3. 配置profile.d脚本
|
|
||||||
echo "配置 profile.d 脚本..."
|
|
||||||
cat > /etc/profile.d/bash-product-id.sh <<'EOL'
|
|
||||||
#!/bin/bash
|
|
||||||
if [ -f "/etc/bash_product/BASH_PRODUCT_ID" ]; then
|
|
||||||
export BASH_PRODUCT_ID=$(cat /etc/bash_product/BASH_PRODUCT_ID)
|
|
||||||
else
|
|
||||||
export BASH_PRODUCT_ID="unset"
|
|
||||||
fi
|
|
||||||
EOL
|
|
||||||
chmod +x /etc/profile.d/bash-product-id.sh
|
|
||||||
|
|
||||||
# 4. 配置bash.bashrc
|
|
||||||
echo "配置 /etc/bash.bashrc..."
|
|
||||||
BASHRC_CONFIG='
|
|
||||||
# BASH_PRODUCT_ID environment variable
|
|
||||||
if [ -f "/etc/bash_product/BASH_PRODUCT_ID" ]; then
|
|
||||||
export BASH_PRODUCT_ID=$(cat /etc/bash_product/BASH_PRODUCT_ID)
|
|
||||||
else
|
|
||||||
export BASH_PRODUCT_ID="unset"
|
|
||||||
fi'
|
|
||||||
|
|
||||||
if ! grep -q "BASH_PRODUCT_ID" /etc/bash.bashrc; then
|
|
||||||
echo "$BASHRC_CONFIG" >> /etc/bash.bashrc
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 重新加载 systemd 配置并启用服务
|
# 删除 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
|
systemctl daemon-reload
|
||||||
systemctl enable "$SERVICE_NAME"
|
|
||||||
systemctl start "$SERVICE_NAME"
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "✅ 配置完成!"
|
echo "✅ 卸载完成!"
|
||||||
echo "当前设置:"
|
echo "所有 BASH_PRODUCT_ID 相关配置已移除。"
|
||||||
if [ -f "$UUID_FILE" ]; then
|
echo "重新登录终端后环境变量将被清除。"
|
||||||
echo "BASH_PRODUCT_ID=$(cat $UUID_FILE)"
|
|
||||||
else
|
|
||||||
echo "BASH_PRODUCT_ID=unset"
|
|
||||||
fi
|
|
||||||
echo ""
|
|
||||||
echo "重新登录终端后环境变量将自动加载。"
|
|
||||||
echo "立即生效请执行以下任一命令:"
|
|
||||||
echo "source /etc/bash.bashrc"
|
|
||||||
echo "source /etc/profile.d/bash-product-id.sh"
|
|
||||||
echo "source /etc/environment"
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue