ls: no se puede acceder a .gvfs: permiso denegado

11

Cada vez que ejecuto una aplicación en el terminal como root (como sudo gedit /etc/default/varnish), posteriormente cuando abro otro terminal obtengo el error "ls: no puedo acceder a .gvfs: Permiso denegado" en la línea superior del terminal.

Encontré una solución en la red

  umount /path/to/.gvfs
  rm -rf .gvfs

pero solo soluciona el problema temporalmente.

Parece que tengo dos instancias montadas de gvfs en mi sistema

  $ sudo mount |grep gvfs
    gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=33)
    gvfsd-fuse on /home/****/.gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)

No sé si está relacionado, hace unos meses tuve que cambiar el permiso en mi carpeta de inicio como

  sudo chown -R $USER:www-data

¿Podrías ayudarme a arreglarlo?

EDITAR: después de desmontar /run/user/1000/gvfsno obtengo ese error.

Kenn
fuente
1
Y esa es una de las razones por las que no debe ejecutarse sudocon programas gráficos.
muru
@muru Gracias por el enlace, explica bien por qué no debería ejecutar sudo para abrir aplicaciones gráficas. Pero todavía me pregunto por qué comencé a recibir ese mensaje de error
kenn
Citando la respuesta principal en la pregunta vinculada: "Esto a veces dará como resultado que los archivos de configuración sean propiedad de root y, por lo tanto, inaccesibles para usted (cuando luego ejecute el programa como usted mismo y no como root)".
muru
1
Sospecho que esta situación particular puede no estar relacionada con la ejecución de programas gráficos con sudo directo . Los permisos / acceso en las .gvfscarpetas de los usuarios siempre han sido interesantes y (para algunos de nosotros) sorprendentes .
Eliah Kagan

Respuestas:

9

Ejecutar aplicaciones gráficas a sudoveces puede generar problemas como este.

Explicación

sudoejecuta el programa con privilegios de superusuario (como ejecutar como root), pero el programa todavía ve el directorio de inicio actual como su directorio de inicio.

Entonces, cuando el software escribe sus archivos de configuración, terminará creando archivos en su directorio de inicio que son propiedad del usuario raíz . Termina con archivos que usted mismo no puede editar o eliminar, y el software se ejecuta ya que tampoco podrá modificarlo, lo que genera más problemas.

¿Cuál es la mejor solución?

Hay una alternativa: gksudo.

Esta variante de sudo configurará variables de entorno, como el directorio de inicio, de tal manera que haga que la ejecución de aplicaciones gráficas como root sea mucho más segura y no confunda los programas para crear archivos propiedad de root en su directorio de inicio.

¿Por qué afecta esto a las aplicaciones gráficas?

Esto no solo afecta a las aplicaciones gráficas, ni a todas las aplicaciones gráficas. Afecta a las aplicaciones que almacenan la configuración dentro del directorio de inicio del usuario actual. Esto es más común entre las aplicaciones gráficas.

A veces, las aplicaciones podrán detectar si se ejecutan con sudo y ajustar su comportamiento en consecuencia, pero esto no es común con las aplicaciones gráficas que generalmente no se espera que se ejecuten con sudo.

¿Cómo soluciono el problema?

Deberá encontrar archivos y directorios propiedad de root dentro de su directorio de inicio y eliminarlos. En mi opinión, es mejor eliminarlos que cambiar su propiedad, ya que no estaban destinados a su usuario, sino al usuario raíz, por lo que puede haber efectos inesperados si simplemente cambia la propiedad. Por supuesto, puede respaldarlos en caso de que decida que hay algo que desea en ellos más tarde.

Para buscar archivos propiedad de root en su directorio de inicio:

find ~ -user root

Si todavía tiene problemas con algunas aplicaciones (se ejecuta como su usuario), intente reiniciar para borrar /tmpy todo lo que todavía se está ejecutando. Ocasionalmente, algunas aplicaciones pueden haber dañado sus archivos de configuración existentes y necesitan que elimine toda su configuración en su directorio de inicio, pero espero que este no sea el caso para muchos.

thomasrutter
fuente
Gracias por la explicación. ¿Cómo puedo arreglarlo? ¿O todos tienen el mismo problema que yo?
kenn
3
Al usar en gksudolugar de sudocuando se ejecutan programas gráficos.
thomasrutter
Entonces no hay nada malo en mi sistema.
kenn
2
Sí, aparte de la posibilidad de que ahora tenga archivos propiedad de root en su directorio personal que no deberían ser propiedad de root.
thomasrutter
2

Solo dale permisos al usuario .gvfs/y debería solucionarlo.

sudo chown -R $USER.$USER ~/.gvfs/
Rajeev Sharma
fuente