Sou proprietário de uma pasta mas não consigo acessá-la

Sou proprietário de uma pasta mas não consigo acessá-la

Eu tenho uma pasta com minhas anotações sobre o sistema.

Estou logado como usuário1

cd masternotesproduz:

bash: cd: mastersnotes: permission denied

whoamiproduz:user1

ls -lproduz:

drw-rw-rw-. 2 user1 user1        4096 Mar 26 20:47 masternotes

ls -ldentro do diretório produz:

-rw-rw-rw-. 7 user1 user1   345 Oct  7  2006 crontab
-rw-rw-rw-. 7 user1 user1   348 Oct  7  2006 crontab~
-rw-rw-rw-. 7 user1 user1  3702 Oct  7  2006 grep_usage.txt
-rw-rw-rw-. 7 user1 user1 91868 Oct  7  2006 lvm-layout-10-14-03.tif
-rw-rw-rw-. 7 user1 user1    30 Oct  7  2006 mysql
-rw-rw-rw-. 7 user1 user1 35764 Oct  7  2006 notes

Eu corri chmod -R 666 masternotesna pasta.

Eu corri chownpara root e chgrppara root e voltei para user1.

root pode descer e entrar na pasta e abrir o arquivo.

usuário1 não pode.

Alguma pista sobre o que está acontecendo aqui?

Responder1

Isto é umpermissõesproblema, não um problema de propriedade.

As permissões de execução (abreviadas xe exibidas onde -está rw-) estão visivelmente ausentes das permissões que você nos mostrou.

As permissões de execução funcionam de maneira muito diferente para diretórios e para arquivos normais. Para diretórios, as permissões de execução permitementre no diretório(isto é, para cdacessá-lo ou abri-lo em um gerenciador de arquivos). Eles também permitem tentar acessar arquivos no diretório (embora o sucesso ou não também dependa de outras permissões, às vezes incluindo as permissões dos arquivos que estão sendo acessados).

rooté capaz de entrar no diretório porque ele não está realmente vinculado a permissões da maneira usual. De muitas maneiras, os comandos e aplicativos executados roottentarão respeitar as permissões para atender aos desejos do usuário. Mas roottem o poder de realizar qualquer operação (que o SO seja capaz de realizar) em qualquer arquivo ou diretório. Em um rootshell, cdentrar em um diretório que não possui nenhuma permissão de execução será bem-sucedido.

A soluçãopara o problema é executar:

chmod u+x masternotes

Isso dá ( +) ao proprietário de masternotes( u) permissões executáveis ​​( x) no diretório.

Então você poderá entrar no diretório e tentar acessar os arquivos lá, como um usuário normal.

Se você quiser que os membros do proprietário do grupo também possam fazer isso, você pode executar o seguinte:

chmod ug+x masternotes

Mas você provavelmente é o único membro do seu grupo específico de usuário (que possui a pasta).

O chmodcomando aqui faznãoprecisa ser executado como root- é deliberado que eu tenhanãoincluído sudoem qualquer comando. Vocêtera pasta, para que você mesmo possa alterar suas permissões - você não precisa rootfazer isso por você.

Caso você esteja interessado emdefinindo permissões de execução numericamente, lembre-se de que para cada dígito adicionado (começando com zero):

  • 4 para leitura.
  • 2 para escrever.
  • 1 para executar.

Por exemplo, se você quisesse que todos pudessem ler e executarsome-filemas apenas o proprietário para poder escrever, você usaria:

chmod 755 some-file

Eu recomendoFilePermissions na documentação da comunidade, para leitura adicional sobre permissões de arquivo no Ubuntu, incluindo o bit executável e seu significado especial para pastas.

informação relacionada