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
chown
de qualquer diretório recursivamente (incluindo arquivos ocultos):sudo chown -R foo:foo /spam/egg/
-
Para
chown
apenas 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
chown
apenas os arquivos não ocultos (sem o próprio diretório):sudo chown -R foo:foo egg/*