GNU/Linux >> Znalost Linux >  >> Linux

Proč nelze najít Read /run/user/1000/gvfs, i když běží jako root?

Může mi někdo říct, co dělám špatně, co to je nebo jak to opravit? Používám Fedoru 18 a zobrazuje se mi chyba

[[email protected] /]# find . -name ngirc
find: `./run/user/1000/gvfs': Permission denied
[[email protected] /]# 
[[email protected] /]# pwd
/
[[email protected] /]# ls -ltr ./run/user/1000
ls: cannot access ./run/user/1000/gvfs: Permission denied
total 0
d?????????? ? ?    ?      ?            ? gvfs
lrwxrwxrwx. 1 root root  17 May 28 12:30 X11-display -> /tmp/.X11-unix/X0
drwx------. 2 kal  kal  120 May 28 12:30 keyring-QjDw4b
drwx------. 2 kal  kal   40 May 28 12:30 gvfs-burn
drwx------. 2 kal  kal   60 May 28 12:30 krb5cc_5f0bcaf94f916d6b61696e2251a4dbb3
drwx------. 2 kal  kal   60 May 28 18:25 dconf

Přijatá odpověď:

Neděláte nic špatného a není co opravovat. /run/user/$uid/gvfs nebo ~$user/.gvfs je přípojný bod pro rozhraní FUSE k GVFS. GVFS je implementace virtuálního souborového systému pro Gnome, která umožňuje aplikacím Gnome přistupovat ke zdrojům, jako jsou servery FTP nebo Samba, nebo k obsahu souborů zip, jako jsou místní adresáře. FUSE je způsob, jak implementovat ovladače souborového systému jako uživatelský kód (místo kódu jádra). Brána GVFS-FUSE zpřístupňuje ovladače souborového systému GVFS všem aplikacím, nejen těm, které používají knihovny Gnome.

Správa hranic důvěryhodnosti se souborovými systémy FUSE je obtížná, protože ovladač souborového systému běží jako neprivilegovaný uživatel, na rozdíl od kódu jádra pro tradiční souborové systémy. Aby se předešlo komplikacím, ve výchozím nastavení jsou souborové systémy FUSE přístupné pouze uživateli, který spouští proces ovladače. Ani root toto omezení neobejde.

Pokud hledáte soubor pouze na lokálních souborových systémech, předejte -xdev find . Pokud chcete procházet více lokálními souborovými systémy, vyjmenujte je všechny.

find  / /home -xdev -name ngirc

Pokud je soubor přítomen od včerejška, můžete zkusit locate ngirc místo toho (locate prohledává databázi názvů souborů, která se obvykle aktualizuje každou noc).

Pokud chcete procházet přípojné body GVFS, musíte tak učinit jako příslušný uživatel.

find / -name ngirc -path '/run/user/*/gvfs' -prune -o -path '/home/*/.gvfs' -prune -o -name ngirc -print
for d in /run/user/*; do su "${d##*/}" -c "find $d -name ngirc -print"; done


Linux
  1. Linux, proč nemohu psát, i když mám skupinová oprávnění?

  2. Proč nefunguje find -exec mv {} ./target/ +?

  3. gcc - chyba /usr/bin/ld:nelze najít <knihovnu> v /usr/local/lib, přestože ji ldconfig uvádí a cesta byla přidána do ld.so.conf

  1. Spustit příkaz shell v jenkins jako uživatel root?

  2. Jak zjistit, ze které složky běží proces?

  3. Proč se obsah /dev/shm/ automaticky odstraňuje

  1. Proč dávat věci jiné než /home do samostatného oddílu?

  2. Jak nastavit ssh bez hesla pomocí klíčů RSA

  3. Proč se na některých systémech Linux kořenový souborový systém zobrazuje jako /dev/root místo /dev/<uzel skutečného zařízení>v mtab?