You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04 LTS中普通用户目录置于sudo用户目录内时Snap Store及Snap应用无法使用的解决方法求助

Ubuntu 22.04 LTS中普通用户目录置于sudo用户目录内时Snap Store及Snap应用无法使用的解决方法求助

嗨,我来帮你搞定这个Snap的问题~ 你遇到的情况其实是因为Snap对用户主目录的权限和路径有特定要求,把普通用户的home放在sudo用户的目录下后,Snap没法正常识别和访问必要的配置文件了,我给你几个步骤来修复:

1. 检查并修复普通用户主目录的权限和归属

首先得确保你的普通用户my_regular_user完全拥有自己的主目录,不然Snap会因为权限不足没法读写数据:

  • 先查看当前目录的权限和所有者:
    sudo ls -ld /home/my_sudo_user/my_regular_user
    
    正常输出应该显示所有者是my_regular_user:my_regular_user,权限是drwx------(也就是700)。
  • 如果不符合,执行下面的命令修改:
    # 修改目录归属为普通用户
    sudo chown -R my_regular_user:my_regular_user /home/my_sudo_user/my_regular_user
    # 设置正确的目录权限
    sudo chmod 700 /home/my_sudo_user/my_regular_user
    

2. 配置Snap的用户数据路径环境变量

Snap默认会在标准的/home/用户名下找snap目录存储应用数据,现在你的用户目录位置特殊,得告诉Snap去哪里找:

  • 切换到普通用户:
    su - my_regular_user
    
  • 编辑用户的~/.bashrc文件(用你习惯的编辑器,比如nano):
    nano ~/.bashrc
    
  • 在文件末尾添加下面的环境变量配置:
    export XDG_DATA_DIRS="$HOME/snap:$XDG_DATA_DIRS"
    
  • 保存退出后,让配置立即生效:
    source ~/.bashrc
    

3. 重新初始化Snap用户数据

接下来让Snap重新识别你的用户数据目录,修复可能损坏的配置:

  • 还是在普通用户的终端里,先刷新Snap应用:
    snap refresh
    
  • 如果Snap Store还是没法用,可以尝试重新安装它:
    snap install snap-store --force
    

4. 检查AppArmor权限(如果前面步骤无效)

Snap依赖AppArmor做权限管控,路径变化可能导致AppArmor阻止了Snap的访问:

  • 查看AppArmor的日志信息,看看有没有相关的拒绝记录:
    sudo dmesg | grep apparmor
    
    如果发现有针对/home/my_sudo_user/my_regular_user的拒绝条目,你需要调整AppArmor的配置文件,不过这个操作相对复杂,先把前面的步骤都试完,如果还是不行再考虑这一步。

一般来说,前面三个步骤就能解决大部分问题啦,你可以一步步试试看~

备注:内容来源于stack exchange,提问作者Luiz Carlos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 11:12:39