You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
139 lines
4.1 KiB
139 lines
4.1 KiB
#!/bin/bash
|
|
|
|
# Cursor权限测试脚本
|
|
# 用于验证修复后的权限设置是否正确
|
|
|
|
# 颜色定义
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# 日志函数
|
|
log_info() {
|
|
echo -e "${GREEN}[INFO]${NC} $1"
|
|
}
|
|
|
|
log_warn() {
|
|
echo -e "${YELLOW}[WARN]${NC} $1"
|
|
}
|
|
|
|
log_error() {
|
|
echo -e "${RED}[ERROR]${NC} $1"
|
|
}
|
|
|
|
# 测试权限函数
|
|
test_cursor_permissions() {
|
|
echo
|
|
log_info "🔍 [测试] 开始测试Cursor目录权限..."
|
|
|
|
local cursor_support_dir="$HOME/Library/Application Support/Cursor"
|
|
local cursor_home_dir="$HOME/.cursor"
|
|
|
|
# 关键目录列表
|
|
local directories=(
|
|
"$cursor_support_dir"
|
|
"$cursor_support_dir/User"
|
|
"$cursor_support_dir/User/globalStorage"
|
|
"$cursor_support_dir/logs"
|
|
"$cursor_support_dir/CachedData"
|
|
"$cursor_support_dir/User/workspaceStorage"
|
|
"$cursor_support_dir/User/History"
|
|
"$cursor_home_dir"
|
|
"$cursor_home_dir/extensions"
|
|
)
|
|
|
|
local all_ok=true
|
|
|
|
echo
|
|
log_info "📁 [检查] 目录存在性和权限检查:"
|
|
|
|
for dir in "${directories[@]}"; do
|
|
if [ -d "$dir" ]; then
|
|
local perms=$(ls -ld "$dir" | awk '{print $1}')
|
|
local owner=$(ls -ld "$dir" | awk '{print $3}')
|
|
local group=$(ls -ld "$dir" | awk '{print $4}')
|
|
|
|
# 检查是否可写
|
|
if [ -w "$dir" ]; then
|
|
echo -e " ✅ $dir"
|
|
echo -e " 权限: $perms | 所有者: $owner | 组: $group | 可写: 是"
|
|
else
|
|
echo -e " ❌ $dir"
|
|
echo -e " 权限: $perms | 所有者: $owner | 组: $group | 可写: 否"
|
|
all_ok=false
|
|
fi
|
|
else
|
|
echo -e " ❌ $dir (不存在)"
|
|
all_ok=false
|
|
fi
|
|
done
|
|
|
|
echo
|
|
|
|
# 测试创建文件
|
|
log_info "📝 [测试] 测试文件创建权限..."
|
|
|
|
local test_file="$cursor_support_dir/logs/test_permission_$(date +%s).txt"
|
|
if touch "$test_file" 2>/dev/null; then
|
|
log_info "✅ [成功] 可以在logs目录创建文件"
|
|
rm -f "$test_file" 2>/dev/null
|
|
else
|
|
log_error "❌ [失败] 无法在logs目录创建文件"
|
|
all_ok=false
|
|
fi
|
|
|
|
# 测试配置文件权限
|
|
local config_file="$cursor_support_dir/User/globalStorage/storage.json"
|
|
if [ -f "$config_file" ]; then
|
|
log_info "📋 [检查] 配置文件权限:"
|
|
local config_perms=$(ls -l "$config_file" | awk '{print $1}')
|
|
local config_owner=$(ls -l "$config_file" | awk '{print $3}')
|
|
echo " 文件: $config_file"
|
|
echo " 权限: $config_perms | 所有者: $config_owner"
|
|
|
|
if [ -r "$config_file" ]; then
|
|
log_info "✅ [成功] 配置文件可读"
|
|
else
|
|
log_error "❌ [失败] 配置文件不可读"
|
|
all_ok=false
|
|
fi
|
|
else
|
|
log_warn "⚠️ [警告] 配置文件不存在: $config_file"
|
|
fi
|
|
|
|
echo
|
|
|
|
# 总结
|
|
if [ "$all_ok" = true ]; then
|
|
log_info "🎉 [结果] 所有权限测试通过!"
|
|
return 0
|
|
else
|
|
log_error "❌ [结果] 权限测试失败,存在问题"
|
|
echo
|
|
log_info "💡 [建议] 运行以下命令修复权限:"
|
|
echo -e "${BLUE}sudo chown -R \$(whoami) \"$HOME/Library/Application Support/Cursor\"${NC}"
|
|
echo -e "${BLUE}sudo chown -R \$(whoami) \"$HOME/.cursor\"${NC}"
|
|
echo -e "${BLUE}chmod -R u+w \"$HOME/Library/Application Support/Cursor\"${NC}"
|
|
echo -e "${BLUE}chmod -R u+w \"$HOME/.cursor\"${NC}"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# 主函数
|
|
main() {
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo -e "${GREEN} Cursor 权限测试脚本${NC}"
|
|
echo -e "${GREEN}========================================${NC}"
|
|
|
|
test_cursor_permissions
|
|
|
|
echo
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo -e "${GREEN} 测试完成${NC}"
|
|
echo -e "${GREEN}========================================${NC}"
|
|
}
|
|
|
|
# 执行主函数
|
|
main "$@"
|