Esse problema é causado porque você executou:
sudo chown -R admin:admin .*
Sabemos que . indica o diretório atual e .. indica o diretório pai. Quando você executa o comando com .* , significa simplesmente que corresponde a qualquer arquivo oculto no diretório atual (informando com . ), o próprio diretório atual ( . ), o diretório pai ( .. ). Basta colocar qualquer coisa depois de . ( * significa 0 ou mais caracteres). Como resultado, o diretório pai junto com todos os diretórios filhos obtém chown -ed para admin:admin .
Veja este teste:
test$ ls -al
drwxrwxr-x 4 foo foo 4096 Jun 3 07:15 .
drwxrwxr-x 4 foo foo 4096 Jun 2 18:06 ..
drwxrwxr-x 2 foo foo 4096 Jun 3 07:15 egg
drwxrwxr-x 2 foo foo 4096 Jun 3 07:12 spam
$ sudo chown -R bar:bar spam/.*
test$ ls -al
drwxrwxr-x 4 bar bar 4096 Jun 3 07:15 .
drwxrwxr-x 4 foo foo 4096 Jun 2 18:06 ..
drwxrwxr-x 2 bar bar 4096 Jun 3 07:15 egg
drwxrwxr-x 2 bar bar 4096 Jun 3 07:12 spam
Para voltar, você precisa chown dos diretórios afetados novamente.
Eu não tenho certeza qual foi seu plano, mas aqui estão algumas idéias:
-
Para
chownde qualquer diretório recursivamente (incluindo arquivos ocultos):sudo chown -R foo:foo /spam/egg/ -
Para
chownapenas os arquivos (incluindo arquivos ocultos) dentro desse diretório (não o próprio diretório):(shopt -s dotglob && sudo chown -R foo:foo egg/*) -
Para
chownapenas os arquivos não ocultos (sem o próprio diretório):sudo chown -R foo:foo egg/*