Você tem que usar seu cérebro um pouco e se perguntar:
O que o aplicativo realmente está tentando fazer?
Não haverá uma única resposta para isso, já que os erros de "Permissão negada" transcendem sistemas de arquivos, redes e regimes de autenticação (para citar apenas três) ... Não há uma única maneira de encontrar o problema ... do que dizer: "você provavelmente não tem permissão para fazer o que está fazendo".
Mas podemos analisar seus exemplos e descobrir onde está o problema neles.
Em mv testfile /dev/null
você está lendo de ./testfile
e escrevendo para /dev/
(para substituir /dev/null
). Isto é o que o mv
faz quando você tenta mover um arquivo para um arquivo.
Um rápido stat testfile /dev/null /dev/
mostrará:
File: ‘testfile’
Size: 7944 Blocks: 16 IO Block: 4096 regular file
Device: fc01h/64513d Inode: 5284807 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ oli) Gid: ( 1000/ oli)
Access: 2014-03-19 11:35:42.027427288 +0000
Modify: 2014-03-19 12:25:17.343476867 +0000
Change: 2014-03-19 12:25:17.343476867 +0000
Birth: -
File: ‘/dev/null’
Size: 0 Blocks: 0 IO Block: 4096 character special file
Device: 5h/5d Inode: 31128501 Links: 1 Device type: 1,3
Access: (0666/crw-rw-rw-) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-03-18 14:33:16.742165089 +0000
Modify: 2014-03-18 14:33:16.742165089 +0000
Change: 2014-03-18 14:33:16.742165089 +0000
Birth: -
File: ‘/dev/’
Size: 4740 Blocks: 0 IO Block: 4096 directory
Device: 5h/5d Inode: 1025 Links: 17
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-03-20 09:51:04.408762425 +0000
Modify: 2014-03-20 09:51:04.396762425 +0000
Change: 2014-03-20 09:51:04.396762425 +0000
Birth: -
- Você tem acesso de leitura a
./testfile
- Você tem acesso de gravação no dispositivo de caractere pseudo / dev / null.
- Você não tem permissão para escrever em / dev / (o que seria necessário para substituir / dev / null)
- Permissão negada.
O segundo exemplo é muito mais fácil de ler. De sua saída:
drwx------ 2 root root 4096 Mar 11 21:04 .gvfs
drwx------ 2 root root 4096 Mar 11 21:04 dconf
Esses diretórios são de propriedade de root e não dão permissão para que ninguém os leia ou insira. find
é exibido porque não tem permissão para entrar.