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_usermy_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
相关产品推荐
相关产品推荐

