No se puede mover el archivo a la advertencia de basura cuando se intenta eliminar un archivo en Nautilus

16

Estoy tratando de eliminar archivos en Nautilus y cada vez que intento eliminar uno siempre me da este mensaje:

No se puede mover el archivo a la papelera, ¿desea eliminarlo de inmediato?

Entonces me da varias preguntas. Todo lo que quiero es que cuando presiono Deleteel teclado, lo envíe automáticamente a la papelera. No preguntarme todo el tiempo.

El problema se relaciona con las particiones NTFS, unidades externas, pero también incluye sistemas de archivos Linux.

¿Cuáles son las razones por las cuales el nautilus no puede moverse a la basura?

ingrese la descripción de la imagen aquí

Luis Alvarado
fuente
¿puede proporcionar la ruta completa (absoluta) del archivo
aneeshep
En este caso es / var / www. Ya soy el propietario y los permisos son buenos. Pero también hay unidades externas como discos duros y pen drive que tienen el mismo problema.
Luis Alvarado

Respuestas:

10

(Acerca de los medios extraíbles, no el caso del usuario ya que fue un error resuelto con una actualización)

Este comportamiento ocurre porque cuando la unidad está montada, no se le considera el propietario, por lo que no se puede crear una papelera. No se asignó uid o gid y, dado que no se puede crear una carpeta de la papelera en la unidad, solo se le ofrece la opción de eliminar los archivos automáticamente.

En ese caso, tiene 2 opciones: corte los archivos en su sistema de archivos Linux y elimínelos allí (lo que anula el propósito de presionar eliminar y los archivos se eliminan ) o asegúrese de que se le asignen los permisos correctos al montar la unidad.

Cree una nueva regla para sus unidades montadas automáticamente con estas líneas, use su editor de texto favorito para eso

gksudo gedit /etc/udev/rules.d/10-my-media-automount.rules

# vim:enc=utf-8:nu:ai:si:et:ts=4:sw=4:ft=udevrules:
#
# /etc/udev/rules.d/10-my-media-automount.rules

# start at sdb to ignore the system hard drive
KERNEL!="sd[b-z]*", GOTO="my_media_automount_end"
ACTION=="add", PROGRAM!="/sbin/blkid %N", GOTO="my_media_automount_end"

# import some useful filesystem info as variables
IMPORT{program}="/sbin/blkid -o udev -p %N"

# get the label if present, otherwise assign one based on device/partition
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"

# create the dir in /media and symlink it to /mnt
ACTION=="add", RUN+="/bin/mkdir -p '/media/%E{dir_name}'"

# global mount options
ACTION=="add", ENV{mount_options}="relatime"
# filesystem-specific mount options (777/666 dir/file perms for ntfs/vfat) 
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},gid=46,dmask=000,fmask=111,utf8"

# automount ntfs filesystems using ntfs-3g driver
ACTION=="add", ENV{ID_FS_TYPE}=="ntfs", RUN+="/bin/mount -t ntfs-3g -o %E{mount_options} /dev/%k '/media/%E{dir_name}'"
# automount all other filesystems
ACTION=="add", ENV{ID_FS_TYPE}!="ntfs", RUN+="/bin/mount -t auto -o %E{mount_options} /dev/%k '/media/%E{dir_name}'"

# clean up after device removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l '/media/%E{dir_name}'", RUN+="/bin/rmdir '/media/%E{dir_name}'"

# exit
LABEL="my_media_automount_end"

Reinicie su computadora y sus unidades ntfs se montarán utilizando esta regla personalizada, para cambiar los permisos de la unidad montada, eche un vistazo a la línea $env{mount_options},gid=46,dmask=000,fmask=111,utf8", la opción gid=46debe montar la unidad ntfs con privilegios de grupo ( 46(plugdev)es el grupo que permite que un usuario monte una unidad en Ubuntu), fmasky dmaskconfiguraciones para escribir, crear, eliminar archivos / carpetas en la unidad.

Cámbielo según las necesidades. Deberá ordenar otros sistemas de archivos usted mismo de acuerdo con cada tipo, pero esto debería comenzar.

( Fuente de la udevregla )

Bruno Pereira
fuente
¿Esto también funciona para mí? Tengo un entorno ligeramente diferente: uso solo Linux, y tengo NFS montado en casa donde la eliminación funciona bastante bien y también existe una papelera, pero he vinculado un directorio reposal sistema de archivos local /local/home/me/repos(es más rápido). Solo dentro de este directorio y la eliminación de subdirectorios no funciona. Los directorios /local/homeson propiedad de root 755, pero mis directorios /local/home/me/reposme pertenecen con las modalidades 700.
matemáticas
Pregunta: ¿Los valores de esta línea $env{mount_options},gid=46,dmask=000,fmask=111,utf8"también se pueden escribir dentro de la <options>columna de fstab? ¿Es eso lo mismo?
Nearoo
8

Para casos en los que el usuario no puede eliminar un archivo almacenado en una partición no extraíble (Ubuntu 14.04)

Como dijo Bruno Pereira, este comportamiento ocurre porque el usuario no tiene permisos de escritura en el punto de montaje de la partición (en el caso de OP, / var), por lo que no se puede crear un directorio para la papelera.

En este caso, el OP no puede moverse a los archivos de basura almacenados en la partición / var. Para resolver este problema:

$ cd /var
$ sudo mkdir .Trash-1000
$ chown user:group .Trash-1000

Tendrá que reemplazar:

  • 1000 por su identificador de usuario (vea el número que sigue a su nombre de usuario en el archivo / etc / passwd)
  • user:group por su nombre de usuario y grupo, respectivamente
chus
fuente
4

El 16.04, me encontré con el mismo problema. La solución fue abrir Discos, hacer clic en la partición NTFS -> en el pequeño icono de engranajes debajo (Opciones de partición adicionales) -> "Editar opciones de montaje" y agregar "uid = 1000" (sin comillas, separados por una coma) a la línea encima del punto de montaje (ver foto).Modificación de las opciones de montaje de fstab a través de la utilidad Disco

uid debe establecerse en un número alternativo de 1000 tal como lo devuelve el comando "id" del terminal si no es el usuario original, como se menciona aquí .

Greg Kramida
fuente
0

Solía ​​tener este problema cuando agregué una línea en / etc / fstab para montar una partición ntfs. No estaba presente si monté la partición "manualmente" en nautilus.

La documentación de Ubuntu explica que debe montar discos usando udisks, que es lo que usa nautilus.

Resumen de los pasos para montar automáticamente una partición:

  1. Requisito previo: monte la partición y busque su nombre (por ejemplo / dev / sdb1) con el mountcomando

  2. Obtenga el uuid de la partición. El uuid aparece antes de ->en este comando:

    ls -al /dev/disk/by-uuid/

  3. El comando para el montaje será:

    /usr/bin/udisks --mount /dev/disk/by-uuid/<the uuid you found previously>

  4. Agregue este comando en sus aplicaciones de inicio

Aurelien
fuente
1
Esto no le permite ejecutar archivos en la partición ntfs
Anwar
-1

Para aquellos a quienes les gustan las GUI, a continuación se explica cómo resolver esto gráficamente:

  1. Abra el editor de archivos nemo ( sudo apt-get install nemopara instalar) con privilegios elevados, escribiendo sudo nemoen un terminal. [Esto probablemente también funcionará en nautilus, pero solo lo he probado en nemo].
  2. Haga clic derecho en el dispositivo montado donde se almacenan sus archivos y vaya a "Propiedades".
  3. Vaya a la pestaña "Permisos" y para "Propietario", haga clic en el menú desplegable y seleccione su nombre de usuario. Cierra todo y vuelve a tu administrador de archivos normal.
  4. Una vez configurado como propietario del dispositivo, ahora debería crear una papelera para usted en ese dispositivo y permitirle presionar el botón Eliminar para mover automáticamente los archivos a la papelera.
Gabriel Staples
fuente
Ejecutar un programa GUI con sudo generalmente no es una buena idea; Muchas cosas pueden salir mal, como, por ejemplo, cuando se ejecuta por nemoprimera vez, escribirá sus archivos de configuración y creará los directorios que necesita. Estos serán propiedad rooty no podrán ser escritos por el usuario. Y tomará algún tiempo hasta que se note el problema: el sudocomando puede olvidarse por mucho tiempo. Por ejemplo, creo que nemocrea el directorio ~user/.local/share/nemo/scripts/en la primera ejecución.
Volker Siegel
Interesante ....
Gabriel Staples