Não é possível mover o arquivo para o aviso de lixeira ao tentar excluir um arquivo no Nautilus

16

Estou tentando excluir arquivos no Nautilus e sempre que tento excluir um, sempre aparece a seguinte mensagem:

Não é possível mover o arquivo para a lixeira. Deseja excluir imediatamente?

Então isso me dá várias perguntas. Tudo o que quero é que, quando pressiono Deleteo teclado, ele o envia automaticamente para a lixeira. Para não me perguntar o tempo todo.

O problema está relacionado às partições NTFS, unidades externas, mas também inclui sistemas de arquivos Linux.

Quais são as razões para o nautilus não poder se mudar para o lixo?

insira a descrição da imagem aqui

Luis Alvarado
fonte
você pode fornecer o caminho completo (absoluto) do arquivo
aneeshep
Nesse caso, é / var / www. Já sou o proprietário e as permissões são boas. Mas também existem unidades externas, como discos rígidos e pen drives, que têm o mesmo problema.
Luis Alvarado

Respostas:

10

(Sobre mídia removível, não o caso do usuário, pois foi um bug resolvido com uma atualização)

Esse comportamento ocorre porque, quando a unidade é montada, você não é considerado o proprietário, portanto, uma lixeira não pode ser criada. Nenhum uid ou gid foi atribuído e como uma pasta da lixeira não pode ser criada na unidade, você tem a opção de excluir os arquivos automaticamente.

Nesse caso, você tem 2 opções: recorte os arquivos no sistema de arquivos Linux e exclua-os (o que anula o objetivo de pressionar excluir e os arquivos são excluídos ) ou verifique se você recebeu as permissões corretas ao montar a unidade.

Crie uma nova regra para suas unidades montadas automaticamente com essas linhas, use seu editor de texto favorito para isso

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 o computador e as unidades NTFS serão montadas usando esta regra personalizada. Para alterar as permissões da unidade montada, observe a linha $env{mount_options},gid=46,dmask=000,fmask=111,utf8"; a opção gid=46deve montar a unidade NTFS com privilégios de grupo ( 46(plugdev)é o grupo que permite ao usuário montar uma unidade no Ubuntu) fmaske dmaskconfigurações para gravar, criar, excluir arquivos / pastas na unidade.

Mude de acordo com as necessidades. Você precisará resolver outros sistemas de arquivos por conta própria, de acordo com cada tipo, mas isso deve começar.

( Origem da udevregra )

Bruno Pereira
fonte
Isso também funciona para mim? Eu tenho um ambiente ligeiramente diferente: usando apenas Linux, e tenho o NFS montado em casa, onde a exclusão está funcionando muito bem e também existe um lixo, mas vinculei um diretório reposao sistema de arquivos local /local/home/me/repos(é mais rápido). Somente dentro deste diretório e exclusão de subdiretórios não funciona. Diretórios /local/homesão de propriedade da raiz 755, mas meus diretórios /local/home/me/repossão de propriedade por mim com modalidades 700.
matemática
Pergunta: Os valores desta linha: $env{mount_options},gid=46,dmask=000,fmask=111,utf8"também podem ser escritos dentro da <options>coluna de fstab? Aquilo é a mesma coisa?
Nearoo 24/10
8

Para casos em que o usuário não pode excluir um arquivo armazenado em uma partição não removível (Ubuntu 14.04)

Como Bruno Pereira afirmou, esse comportamento ocorre porque o usuário não possui permissões de gravação no ponto de montagem da partição (no caso do OP, / var), portanto, um diretório para a lixeira não pode ser criado.

Nesse caso, o OP não pode se mover para arquivos lixeira armazenados na partição / var. Para resolver esse problema:

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

Você terá que substituir:

  • 1000 pelo seu identificador de usuário (veja o número após o seu nome de login no arquivo / etc / passwd)
  • user:group pelo seu nome de login e grupo, respectivamente
chus
fonte
4

Em 16.04, encontrei o mesmo problema. A solução foi abrir Disks, clicar na partição NTFS -> no ícone de pequenas engrenagens abaixo (Opções adicionais de partição) -> "Editar opções de montagem" e adicionar "uid = 1000" (sem aspas, separadas por vírgula) à linha acima do ponto de montagem (veja a figura).Modificando as opções de montagem do fstab através do utilitário Disk

O uid deve ser definido como um número alternativo de 1000, conforme retornado pelo comando "id" do terminal, se você não for o usuário original, conforme mencionado aqui .

Greg Kramida
fonte
0

Eu costumava ter esse problema quando adicionava uma linha no / etc / fstab para montar uma partição NTFS. Não estava presente se eu montei a partição "manualmente" no nautilus.

A documentação do Ubuntu explica que você deve montar discos usando udisks, que é o que o nautilus usa.

Resumo das etapas para montar automaticamente uma partição:

  1. Pré-requisito: monte a partição e encontre seu nome (por exemplo / dev / sdb1) usando o mountcomando

  2. Obtenha o uuid da partição. O uuid aparece antes do ->neste comando:

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

  3. O comando para montagem será:

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

  4. Adicione este comando em seus aplicativos de inicialização

Aurelien
fonte
11
Isto não é deixá-lo executar arquivos na partição NTFS
Anwar
-1

Para quem gosta de GUIs, veja como resolver isso graficamente:

  1. Abra o editor de arquivo nemo ( sudo apt-get install nemopara instalar) com privilégios elevados, digitando sudo nemoem um terminal. [Isso provavelmente também funcionará no nautilus, mas eu só testei no nemo].
  2. Clique com o botão direito do mouse no dispositivo montado onde seus arquivos estão armazenados e vá para "Propriedades".
  3. Vá para a guia "Permissões" e, em "Proprietário", clique no menu suspenso e selecione seu nome de usuário. Feche tudo e volte ao seu gerenciador de arquivos normal.
  4. Com você definido como o proprietário do dispositivo, ele deve criar uma lixeira nesse dispositivo e permitir que você pressione o botão excluir para mover automaticamente os arquivos para a lixeira.
Gabriel Staples
fonte
A execução de um programa GUI com o sudo geralmente não é uma boa ideia; Muitas coisas podem dar errado - como, por exemplo, ao executar nemopela primeira vez, ele grava seus arquivos de configuração e cria diretórios necessários. Estes serão de propriedade roote não graváveis ​​pelo usuário. E levará algum tempo até que o problema seja percebido - o sudocomando pode ser esquecido por muito tempo. Por exemplo, acho que nemocria o diretório ~user/.local/share/nemo/scripts/na primeira execução.
Volker Siegel
Interessante ....
Gabriel Staples