Erros de permissão, embora as permissões estejam totalmente abertas

8

Instalei o anaconda em nossa nova VM e não consigo listar seu conteúdo. Posso mudar meu diretório para ... / anaconda / mas quando digito ls -lrecebo:

ls: cannot open directory .: Permission denied

No entanto, quando entro:

sudo ls -l

eu recebo

total 92
drwxrwxrwx.   2 gcw8 PosixUsers 12288 May 26 15:30 bin
drwxrwxrwx.   2 gcw8 PosixUsers 12288 May 26 15:30 conda-meta
drwxrwxrwx.   3 gcw8 PosixUsers  4096 Mar 27 16:33 docs
drwxrwxrwx.   2 gcw8 PosixUsers  4096 Mar 27 16:33 envs
drwxrwxrwx.   2 gcw8 PosixUsers  4096 Mar 27 16:33 etc
drwxrwxrwx.   6 gcw8 PosixUsers  4096 May 26 15:19 Examples
drwxrwxrwx.  41 gcw8 PosixUsers  4096 May 26 15:19 include
drwxrwxrwx.  11 gcw8 PosixUsers 20480 May 26 15:19 lib
-rw-rwxrwx.   1 gcw8 PosixUsers  3700 Nov  7  2013 LICENSE.txt
drwxrwxrwx. 185 gcw8 PosixUsers 12288 May 26 15:30 pkgs
drwxrwxrwx.   3 gcw8 PosixUsers  4096 Mar 27 16:33 plugins
drwxrwxrwx.  10 gcw8 PosixUsers  4096 Mar 27 16:33 share
drwxrwxrwx.   3 gcw8 PosixUsers  4096 Mar 27 16:48 ssl

O groupscomando indica que eu sou um membro do PosixUsers e quem criou isso inicialmente. Por que não consigo acessá-lo? Em um ponto, corri, chmod -R ugo+rwx .../anaconda/mas ainda não vejo como isso resultaria nesse erro. Se alguma coisa, deve aliviá-lo. Estou executando o CentOS e tudo isso está sendo feito via ssh. Alguém pode ver o problema?

G Warner
fonte

Respostas:

13

Observe o .final das permissões ( drwxrwxrwx.): isso significa que há um contexto SELinux envolvido. Você precisa acertar isso para que seu usuário possa listar o conteúdo do diretório.

Para ver os contextos para o seu diretório, execute

sudo ls -alZ

(a -Zopção mostra os contextos SELinux necessários).

O wiki do CentOS tem uma boa página no SELinux. Você encontrará mais informações sobre o último caractere nas permissões em '+' e 's' nas cadeias de permissão .

Stephen Kitt
fonte
@son_of_fire: Stephen está certo, +é para qualquer outra combinação de restrições de acesso, .está reservado apenas para o SELinux. A IMO pertenceria à resposta, no entanto.
0xC0000022L