mirror of
https://github.com/yuaotian/go-cursor-help.git
synced 2025-06-08 04:22:06 +08:00
Enhance file permission settings for Cursor configuration files
- Updated Linux, macOS, and Windows scripts to set more restrictive file permissions - Implemented read-only file access with additional validation checks - Added fallback methods to ensure configuration file protection - Improved logging for permission setting processes
This commit is contained in:
parent
5a3c1c79a8
commit
09a95b999f
@ -185,9 +185,21 @@ generate_new_config() {
|
|||||||
sed -i "s|\"telemetry\.devDeviceId\":[[:space:]]*\"[^\"]*\"|\"telemetry.devDeviceId\": \"$device_id\"|" "$STORAGE_FILE"
|
sed -i "s|\"telemetry\.devDeviceId\":[[:space:]]*\"[^\"]*\"|\"telemetry.devDeviceId\": \"$device_id\"|" "$STORAGE_FILE"
|
||||||
sed -i "s|\"telemetry\.sqmId\":[[:space:]]*\"[^\"]*\"|\"telemetry.sqmId\": \"$sqm_id\"|" "$STORAGE_FILE"
|
sed -i "s|\"telemetry\.sqmId\":[[:space:]]*\"[^\"]*\"|\"telemetry.sqmId\": \"$sqm_id\"|" "$STORAGE_FILE"
|
||||||
|
|
||||||
chmod 644 "$STORAGE_FILE"
|
# 设置文件权限和所有者
|
||||||
|
chmod 444 "$STORAGE_FILE" # 改为只读权限
|
||||||
chown "$CURRENT_USER:$CURRENT_USER" "$STORAGE_FILE"
|
chown "$CURRENT_USER:$CURRENT_USER" "$STORAGE_FILE"
|
||||||
|
|
||||||
|
# 验证权限设置
|
||||||
|
if [ -w "$STORAGE_FILE" ]; then
|
||||||
|
log_warn "无法设置只读权限,尝试使用其他方法..."
|
||||||
|
# 在 Linux 上使用 chattr 命令设置不可修改属性
|
||||||
|
if command -v chattr &> /dev/null; then
|
||||||
|
chattr +i "$STORAGE_FILE" 2>/dev/null || log_warn "chattr 设置失败"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
log_info "成功设置文件只读权限"
|
||||||
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
log_info "已更新配置:"
|
log_info "已更新配置:"
|
||||||
log_debug "machineId: $machine_id"
|
log_debug "machineId: $machine_id"
|
||||||
|
@ -161,9 +161,18 @@ generate_new_config() {
|
|||||||
sed -i '' -e "s/\"telemetry\.devDeviceId\":[[:space:]]*\"[^\"]*\"/\"telemetry.devDeviceId\": \"$device_id\"/" "$STORAGE_FILE"
|
sed -i '' -e "s/\"telemetry\.devDeviceId\":[[:space:]]*\"[^\"]*\"/\"telemetry.devDeviceId\": \"$device_id\"/" "$STORAGE_FILE"
|
||||||
sed -i '' -e "s/\"telemetry\.sqmId\":[[:space:]]*\"[^\"]*\"/\"telemetry.sqmId\": \"$sqm_id\"/" "$STORAGE_FILE"
|
sed -i '' -e "s/\"telemetry\.sqmId\":[[:space:]]*\"[^\"]*\"/\"telemetry.sqmId\": \"$sqm_id\"/" "$STORAGE_FILE"
|
||||||
|
|
||||||
chmod 644 "$STORAGE_FILE"
|
# 设置文件权限和所有者
|
||||||
|
chmod 444 "$STORAGE_FILE" # 改为只读权限
|
||||||
chown "$CURRENT_USER" "$STORAGE_FILE"
|
chown "$CURRENT_USER" "$STORAGE_FILE"
|
||||||
|
|
||||||
|
# 验证权限设置
|
||||||
|
if [ -w "$STORAGE_FILE" ]; then
|
||||||
|
log_warn "无法设置只读权限,尝试使用其他方法..."
|
||||||
|
chattr +i "$STORAGE_FILE" 2>/dev/null || true
|
||||||
|
else
|
||||||
|
log_info "成功设置文件只读权限"
|
||||||
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
log_info "已更新配置:"
|
log_info "已更新配置:"
|
||||||
log_debug "machineId: $machine_id"
|
log_debug "machineId: $machine_id"
|
||||||
|
@ -197,10 +197,10 @@ try {
|
|||||||
# 创建新的访问控制列表
|
# 创建新的访问控制列表
|
||||||
$acl = New-Object System.Security.AccessControl.FileSecurity
|
$acl = New-Object System.Security.AccessControl.FileSecurity
|
||||||
|
|
||||||
# 添加当前用户的完全控制权限
|
# 添加当前用户的只读权限
|
||||||
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule(
|
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule(
|
||||||
$userAccount, # 使用域名\用户名格式
|
$userAccount, # 使用域名\用户名格式
|
||||||
[System.Security.AccessControl.FileSystemRights]::FullControl,
|
[System.Security.AccessControl.FileSystemRights]::ReadAndExecute, # 改为只读权限
|
||||||
[System.Security.AccessControl.InheritanceFlags]::None,
|
[System.Security.AccessControl.InheritanceFlags]::None,
|
||||||
[System.Security.AccessControl.PropagationFlags]::None,
|
[System.Security.AccessControl.PropagationFlags]::None,
|
||||||
[System.Security.AccessControl.AccessControlType]::Allow
|
[System.Security.AccessControl.AccessControlType]::Allow
|
||||||
@ -209,13 +209,20 @@ try {
|
|||||||
try {
|
try {
|
||||||
$acl.AddAccessRule($accessRule)
|
$acl.AddAccessRule($accessRule)
|
||||||
Set-Acl -Path $STORAGE_FILE -AclObject $acl -ErrorAction Stop
|
Set-Acl -Path $STORAGE_FILE -AclObject $acl -ErrorAction Stop
|
||||||
Write-Host "$GREEN[信息]$NC 成功设置文件权限"
|
Write-Host "$GREEN[信息]$NC 成功设置文件只读权限"
|
||||||
|
|
||||||
|
# 设置文件为只读属性
|
||||||
|
Set-ItemProperty -Path $STORAGE_FILE -Name IsReadOnly -Value $true
|
||||||
|
Write-Host "$GREEN[信息]$NC 成功设置文件只读属性"
|
||||||
} catch {
|
} catch {
|
||||||
# 如果第一种方法失败,尝试使用 icacls
|
# 如果第一种方法失败,尝试使用 icacls
|
||||||
Write-Host "$YELLOW[警告]$NC 使用备选方法设置权限..."
|
Write-Host "$YELLOW[警告]$NC 使用备选方法设置权限..."
|
||||||
$result = Start-Process "icacls.exe" -ArgumentList "`"$STORAGE_FILE`" /grant `"$($env:USERNAME):(F)`"" -Wait -NoNewWindow -PassThru
|
$result = Start-Process "icacls.exe" -ArgumentList "`"$STORAGE_FILE`" /grant `"$($env:USERNAME):(R)`"" -Wait -NoNewWindow -PassThru
|
||||||
if ($result.ExitCode -eq 0) {
|
if ($result.ExitCode -eq 0) {
|
||||||
Write-Host "$GREEN[信息]$NC 成功使用 icacls 设置文件权限"
|
Write-Host "$GREEN[信息]$NC 成功使用 icacls 设置文件只读权限"
|
||||||
|
# 设置文件为只读属性
|
||||||
|
Set-ItemProperty -Path $STORAGE_FILE -Name IsReadOnly -Value $true
|
||||||
|
Write-Host "$GREEN[信息]$NC 成功设置文件只读属性"
|
||||||
} else {
|
} else {
|
||||||
Write-Host "$YELLOW[警告]$NC 设置文件权限失败,但文件已写入成功"
|
Write-Host "$YELLOW[警告]$NC 设置文件权限失败,但文件已写入成功"
|
||||||
}
|
}
|
||||||
@ -224,9 +231,12 @@ try {
|
|||||||
Write-Host "$YELLOW[警告]$NC 设置文件权限失败: $_"
|
Write-Host "$YELLOW[警告]$NC 设置文件权限失败: $_"
|
||||||
Write-Host "$YELLOW[警告]$NC 尝试使用 icacls 命令..."
|
Write-Host "$YELLOW[警告]$NC 尝试使用 icacls 命令..."
|
||||||
try {
|
try {
|
||||||
$result = Start-Process "icacls.exe" -ArgumentList "`"$STORAGE_FILE`" /grant `"$($env:USERNAME):(F)`"" -Wait -NoNewWindow -PassThru
|
$result = Start-Process "icacls.exe" -ArgumentList "`"$STORAGE_FILE`" /grant `"$($env:USERNAME):(R)`"" -Wait -NoNewWindow -PassThru
|
||||||
if ($result.ExitCode -eq 0) {
|
if ($result.ExitCode -eq 0) {
|
||||||
Write-Host "$GREEN[信息]$NC 成功使用 icacls 设置文件权限"
|
Write-Host "$GREEN[信息]$NC 成功使用 icacls 设置文件只读权限"
|
||||||
|
# 设置文件为只读属性
|
||||||
|
Set-ItemProperty -Path $STORAGE_FILE -Name IsReadOnly -Value $true
|
||||||
|
Write-Host "$GREEN[信息]$NC 成功设置文件只读属性"
|
||||||
} else {
|
} else {
|
||||||
Write-Host "$YELLOW[警告]$NC 所有权限设置方法都失败,但文件已写入成功"
|
Write-Host "$YELLOW[警告]$NC 所有权限设置方法都失败,但文件已写入成功"
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user