Il problema
Non è possibile eliminare alcune directory utente. Ad esempio:
/root/.cache/doc/ directory /root/.cache/doc/by-app directory
Se proviamo a eliminare la directory, otteniamo il seguente errore:
# rm -rf /root/.cache/doc/ rm: cannot remove 'doc/by-app': Function not implemented
La soluzione
Le directory sono i punti di montaggio per il dispositivo /dev/fuse.
# mount --mount (ext, ocfs2, nfs, gfs, fuse, cifs, btrfs, xfs) /dev/fuse on /root/.cache/doc type fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
# df /dev/fuse 0 0 0 - /root/.cache/doc
Possiamo vedere che il seguente processo utente xdg-docum sta usando /root/.cache/doc .
# lsof -b M -n -l -c|grep -i fuse xdg-docum 2222 0 mem REG 252,0 259336 67222590 /usr/lib64/libfuse.so.2.9.4 xdg-docum 2222 0 7u CHR 10,229 0t0 24701 /dev/fuse
# cat ps|grep -i xdg-docum root 2222 0.0 0.0 590816 4860 ? Sl Jan1 0:00 /usr/libexec/xdg-document-portal
Conclusione
Il montaggio da /dev/fuse su /root/.cache/doc è gestito dal processo utente /usr/libexec/xdg-document-portal. Gli utenti potrebbero dover interrompere con grazia questo processo e quindi smontare /root/.cache/doc se vogliono eliminare le directory.