Parrot OS中root用户无法访问/run/user/1000/doc权限问题
解决Parrot OS中root无法访问/run/user/1000/doc目录的问题
问题原因
/run/user/1000/doc是由xdg-document-portal创建的特殊目录,它借助Linux挂载命名空间和ACL权限机制实现用户级访问隔离,默认情况下即便是root用户也无法直接访问。
解决方法
方法1:切换到对应普通用户访问
该目录属于UID为1000的普通用户,切换到该用户即可正常查看和访问:
su - kali_37 # 替换为实际的普通用户名 ls -ld /run/user/1000/doc
方法2:用nsenter进入用户挂载命名空间(root身份操作)
如果需要保持root身份访问,可通过nsenter工具进入该用户的挂载命名空间:
- 先获取该用户进程的PID(以bash为例,可替换为zsh等其他shell):
pgrep -u 1000 bash
- 进入命名空间查看目录:
nsenter -t <获取到的PID> -m ls -ld /run/user/1000/doc
若需要在命名空间内执行更多操作,可直接启动shell:
nsenter -t <获取到的PID> -m /bin/bash
方法3:临时卸载挂载(仅用于消除updatedb报错,不推荐)
如果只是想解决updatedb的权限报错,可临时卸载该目录:
umount /run/user/1000/doc
注意:此操作会临时影响该用户的文档门户功能,系统重启或用户重新登录后会自动恢复挂载。
方法4:配置updatedb跳过该目录
编辑updatedb的配置文件,让它扫描时忽略这个目录,从根源消除报错:
nano /etc/updatedb.conf
找到PRUNEPATHS行,添加/run/user/1000/doc路径:
PRUNEPATHS="/tmp /var/tmp /var/cache /var/lock /var/run /run /run/user/1000/doc"
保存退出后,再次执行updatedb就不会再出现权限拒绝的提示。
内容的提问来源于stack exchange,提问作者subash rimal
相关产品推荐
相关产品推荐

