Antecedentes
Acho que seu problema é, em última análise, devido a essas permissões nesse diretório:
drwxr-x--x 16 www-data root 12288 Oct 10 17:08 .
Observe que o proprietário ( www-data
) e o grupo ( root
) têm rwx
e r-x
, respectivamente. No entanto, observe que as outras permissões estão definidas para apenas --x
.
Isso significa que você pode executar comandos nesse diretório, mas não pode ler ou executar listagens do conteúdo desse diretório.
Seu cenário
Você é outro usuário (não www-data
) quando executa o comando sudo
nesse diretório. Vamos chamar esse usuário, UserX.
Quando o shell invoca este comando como UserX:
$ sudo ls *.*
e retorna isso:
ls: cannot access *.*: No such file or directory
O shell do UserX tentou expandir o *.*
para qualquer arquivo, mas como o UserX não pode ler nenhum conteúdo desse diretório, ele não retorna nada. Você está enviando um literal *.*
para o sudo ls *.*
, que não corresponde a nenhum arquivo literal chamado *.*
.
O mesmo problema ocorre quando você tenta executar o comando grep
também. Novamente, o UserX não pode ler nenhum dos arquivos e você está instruindo grep
a procurar por um arquivo literal, *.*
, e não está encontrando nenhum arquivo com esse nome. Daí as mensagens:
cannot access .: No such file or directory
e
.: No such file or directory
Exemplo
Digamos que tenhamos a seguinte configuração, como a sua.
$ sudo chown nginx.root /tmp/afolder
$ sudo chmod 751 /tmp/afolder/
$ sudo ls -ld /tmp/afolder/
drwxr-x--x 2 nginx root 4096 Nov 23 04:10 /tmp/afolder/
$ sudo touch /tmp/afolder/fakefile.txt
Agora vamos nos tornar "UserX", no meu caso é saml
:
$ id
uid=500(saml) gid=501(saml) groups=501(saml)
Eu posso fazer o cd no diretório:
$ pwd
/tmp/afolder
Mas quando tento listar os arquivos nesse diretório:
$ ls *
ls: cannot access *: No such file or directory
Mesmos problemas com sudo
:
$ sudo ls -l *.*
ls: cannot access *.*: No such file or directory
Invocar um shell e proteger a expansão do *
com aspas simples pode obter o que você deseja:
$ sudo bash -c 'ls -l *.*'
-rw-r--r-- 1 root root 0 Nov 23 04:14 fakefile.txt