Por que obter estas permissões negadas no POSIX find-grep legível?

4

Eu faço em Posix find $HOME +perm 0666 -type f -exec grep -l "XSym" {} \; mas entendi isso que eu não entendo

find: ‘/home/masi/.dbus’: Permission denied
grep: /home/masi/.viminfo: Permission denied
grep: /home/masi/.cache/dconf/user: Permission denied

desde

drwx------  3 root root     4096 Jun 18 14:49 .dbus
-rw-------  1 root root     6266 Jun 18 13:24 .viminfo
-rw------- 1 root root 2 Jun 18 14:51 /home/masi/.cache/dconf/user

Eu não gosto de estrutura de negação dupla e coisas que não são do Posix como ! -perm -g+r,u+r,o+r -prune aqui que eu acho que é equivalente a %código%.

Proposta após a correção de Kusalananda

eu faço

# http://unix.stackexchange.com/a/121020/16920
find / -type d \! -perm 0666 -prune -o -type f -name '._*' -print

Saída: sem arquivos. Saída esperada: muitos arquivos com muitos arquivos apropriados. Eu corro

find / -type d \! -perm +0666 -prune -o -type f -name '._*' -print

Eu obtenho

find: invalid mode ‘+0666’

Sistema: Ubuntu 16.04 64 bit
Grep: 2,25
Encontre: 4.7.0-git

    
por Léo Léopold Hertz 준영 19.06.2016 / 22:44

1 resposta

4

Esses arquivos e diretórios não pertencem a você, pertencem ao usuário root e têm permissões de acesso muito restritivas para find e grep funcionarem. Portanto, find reclama por não poder entrar no diretório /home/masi/.dbus (para fazer seu trabalho), e grep reclama por não conseguir ler os arquivos (para fazer o trabalho ) .

Os arquivos e diretórios não pertencem a você, apesar de estarem localizados em seu diretório pessoal. A razão pela qual eles pertencem ao usuário root é provável que você esteja executando coisas ( vim e outras coisas) como root e quaisquer que sejam os programas que criaram os arquivos e diretórios.

Você pode alterar a propriedade desses arquivos e diretórios com chown masi:masi ( masi:masi deve ser substituído por seu nome de usuário e seu nome de grupo padrão, ver seus outros arquivos), mas você precisa ser root para fazer isso , então use sudo chown ... .

Se você quiser ter certeza de que todos arquivos e diretórios em seu diretório pessoal pertencem a você, faça sudo chown -R masi:masi $HOME , mas primeiro certifique-se de que isso é realmente o que você deseja.

EDITAR : Para localizar todos os arquivos e diretórios em $HOME que não pertencem ao usuário masi , faça o seguinte:

$ find $HOME \! -user masi
    
por 20.06.2016 / 09:30

Tags