From 29311545b80db68a6e015c1849b0b2aeb99c6b5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=85=8E=E9=A5=BC=E6=9E=9C=E5=AD=90=E5=8D=B7=E9=B2=A8?= =?UTF-8?q?=E9=B1=BC=E8=BE=A3=E6=A4=92?= Date: Tue, 1 Jul 2025 16:25:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=BC=BA=E6=9D=83=E9=99=90=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=96=B0=E5=A2=9E=E4=BD=BF?= =?UTF-8?q?=E7=94=A8sudo=E7=A1=AE=E4=BF=9D=E7=9B=AE=E5=BD=95=E6=89=80?= =?UTF-8?q?=E6=9C=89=E6=9D=83=E5=92=8C=E7=94=A8=E6=88=B7=E5=86=99=E5=85=A5?= =?UTF-8?q?=E6=9D=83=E9=99=90=E7=9A=84=E6=AD=A5=E9=AA=A4=EF=BC=8C=E6=8F=90?= =?UTF-8?q?=E5=8D=87=E7=94=A8=E6=88=B7=E5=9C=A8=E6=89=A7=E8=A1=8CCursor?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=93=8D=E4=BD=9C=E6=97=B6=E7=9A=84=E9=A1=BA?= =?UTF-8?q?=E5=88=A9=E8=BF=9B=E8=A1=8C=E3=80=82=E6=9B=B4=E6=96=B0=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E4=BB=A5=E9=AA=8C=E8=AF=81=E6=9D=83=E9=99=90=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E5=B9=B6=E6=8F=90=E4=BE=9B=E6=89=8B=E5=8A=A8=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=BB=BA=E8=AE=AE=EF=BC=8C=E7=A1=AE=E4=BF=9D=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=BD=93=E9=AA=8C=E7=9A=84=E5=8F=AF=E9=9D=A0=E6=80=A7?= =?UTF-8?q?=E5=92=8C=E5=AE=89=E5=85=A8=E6=80=A7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/run/cursor_mac_id_modifier.sh | 67 ++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/scripts/run/cursor_mac_id_modifier.sh b/scripts/run/cursor_mac_id_modifier.sh index 62d31e6..dbe692a 100644 --- a/scripts/run/cursor_mac_id_modifier.sh +++ b/scripts/run/cursor_mac_id_modifier.sh @@ -132,12 +132,70 @@ remove_cursor_trial_folders() { chown -R "$(whoami)" "$cursor_support_dir" 2>/dev/null || true chown -R "$(whoami)" "$cursor_home_dir" 2>/dev/null || true + # 🔑 关键修复:使用sudo确保目录所有权(解决EACCES错误) + log_info "🔑 [关键修复] 使用sudo确保目录所有权正确..." + if sudo chown -R "$(whoami)" "$HOME/Library/Application Support/Cursor" 2>/dev/null; then + log_info "✅ [成功] sudo设置Application Support/Cursor目录所有权成功" + else + log_warn "⚠️ [警告] sudo设置Application Support/Cursor目录所有权失败" + fi + + if sudo chown -R "$(whoami)" "$HOME/.cursor" 2>/dev/null; then + log_info "✅ [成功] sudo设置.cursor目录所有权成功" + else + log_warn "⚠️ [警告] sudo设置.cursor目录所有权失败" + fi + + # 🔓 关键修复:设置用户写入权限 + log_info "🔓 [关键修复] 设置用户写入权限..." + if chmod -R u+w "$HOME/Library/Application Support/Cursor" 2>/dev/null; then + log_info "✅ [成功] 设置Application Support/Cursor写入权限成功" + else + log_warn "⚠️ [警告] 设置Application Support/Cursor写入权限失败" + fi + + if chmod -R u+w "$HOME/.cursor/extensions" 2>/dev/null; then + log_info "✅ [成功] 设置.cursor/extensions写入权限成功" + else + log_warn "⚠️ [警告] 设置.cursor/extensions写入权限失败" + fi + # 验证权限设置 log_info "🔍 [验证] 验证权限设置..." - if [ -w "$cursor_support_dir" ] && [ -w "$cursor_home_dir" ]; then + local permission_ok=true + + # 检查目录是否可写 + if [ -w "$cursor_support_dir" ]; then + log_info "✅ [验证] Application Support/Cursor目录可写" + else + log_warn "⚠️ [验证] Application Support/Cursor目录不可写" + permission_ok=false + fi + + if [ -w "$cursor_home_dir" ]; then + log_info "✅ [验证] .cursor目录可写" + else + log_warn "⚠️ [验证] .cursor目录不可写" + permission_ok=false + fi + + # 检查关键子目录是否可写 + if [ -w "$cursor_support_dir/logs" ] || [ ! -d "$cursor_support_dir/logs" ]; then + log_info "✅ [验证] logs目录权限正常" + else + log_warn "⚠️ [验证] logs目录权限异常" + permission_ok=false + fi + + if $permission_ok; then log_info "✅ [成功] 权限验证通过" else log_warn "⚠️ [警告] 权限验证失败,可能仍存在问题" + log_info "💡 [提示] 如果Cursor启动时仍有权限错误,请手动执行:" + echo " sudo chown -R \$(whoami) \"$HOME/Library/Application Support/Cursor\"" + echo " sudo chown -R \$(whoami) \"$HOME/.cursor\"" + echo " chmod -R u+w \"$HOME/Library/Application Support/Cursor\"" + echo " chmod -R u+w \"$HOME/.cursor\"" fi # 🔍 权限诊断 @@ -213,6 +271,13 @@ restart_cursor_and_wait() { chown -R "$(whoami)" "$cursor_support_dir" 2>/dev/null || true chown -R "$(whoami)" "$cursor_home_dir" 2>/dev/null || true + # 🔑 最终权限修复:使用sudo确保权限正确 + log_info "🔑 [最终修复] 使用sudo确保启动前权限正确..." + sudo chown -R "$(whoami)" "$HOME/Library/Application Support/Cursor" 2>/dev/null || true + sudo chown -R "$(whoami)" "$HOME/.cursor" 2>/dev/null || true + chmod -R u+w "$HOME/Library/Application Support/Cursor" 2>/dev/null || true + chmod -R u+w "$HOME/.cursor" 2>/dev/null || true + # 启动Cursor log_info "🚀 [启动] 正在启动Cursor..." "$CURSOR_PROCESS_PATH" > /dev/null 2>&1 &