RHEL 8下切换用户启动VS Code提示无法写入用户数据错误求助
解决RHEL 8中su切换用户后启动VS Code提示「无法写入程序用户数据」的问题
问题原因
使用su切换用户时,默认会保留原登录用户的环境变量(比如$HOME、$XDG_CONFIG_HOME)。VS Code启动时会依赖这些变量定位用户专属数据目录(如~/.config/Code、~/.vscode),此时切换后的用户没有权限写入原用户的这些目录,就会触发「无法写入程序用户数据」的错误。
解决方案
方案1:使用su -完全切换用户环境
这是最直接的解决方式,su -会加载目标用户的完整登录环境,重置所有相关环境变量:
su - target_user # 替换target_user为你要切换的用户名 code
启动后VS Code会自动使用目标用户的专属数据目录,权限问题自然解决。
方案2:手动重置关键环境变量(无需完全切换环境)
如果需要保留部分原用户的环境变量,可手动重置VS Code依赖的路径变量后启动:
su target_user # 重置为目标用户的路径 export HOME=/home/target_user export XDG_CONFIG_HOME=$HOME/.config export XDG_DATA_HOME=$HOME/.local/share # 启动VS Code code
方案3:检查系统级VS Code安装目录权限(可选)
若全系统安装的VS Code目录权限异常,也可能导致问题。先查看权限:
ls -ld /usr/share/code
正常权限应为drwxr-xr-x(所有用户可读可执行)。若权限不符,用以下命令修复:
sudo chmod -R 755 /usr/share/code
内容的提问来源于stack exchange,提问作者Justin Jones
相关产品推荐
相关产品推荐

