permissões de arquivo unix

permissões de arquivo unix

Estou apenas olhando as permissões em algumas das minhas pastas através do terminal e não sei bem o que elas significam.

iMac:~ me$ ls -alt
total 40
drwx------   4 me  staff   136 10 Oct 06:17 .Trash
drwx------+  4 me  staff   136 10 Oct 06:16 Desktop
drwxr-xr-x   6 me  staff   204 10 Oct 06:16 .bash_sessions
-rw-r--r--@  1 me  staff  8196  8 Oct 22:37 .DS_Store
drwx------+  9 me  staff   306  8 Oct 22:37 Downloads
drwx------@ 12 me  staff   408  8 Oct 20:50 Google Drive
drwx------@ 13 me  staff   442  8 Oct 20:49 Dropbox
drwx------   9 me  staff   306  8 Oct 20:49 .dropbox
drwxr-xr-x+ 19 me  staff   646  8 Oct 20:48 .
-rw-r--r--   1 me  staff   100  4 Oct 12:03 .bash_history
drwx------@ 49 me  staff  1666  4 Oct 10:17 Library
drwx------   4 me  staff   136  4 Oct 09:52 Applications
-r--------   1 me  staff     7  4 Oct 09:45 .CFUserTextEncoding
drwx------+  3 me  staff   102  4 Oct 09:42 Documents
drwx------+  3 me  staff   102  4 Oct 09:42 Movies
drwx------+  3 me  staff   102  4 Oct 09:42 Music
drwx------+  3 me  staff   102  4 Oct 09:42 Pictures
drwxr-xr-x+  5 me  staff   170  4 Oct 09:42 Public
drwxr-xr-x   7 root             admin   238  4 Oct 09:42 ..

Qual é a diferença entre "drwxr-xr-x+" encontrado em "." e "drwx------@" encontrado no "Google Drive"?

Responder1

As permissões Unix são, na verdade, muito menos confusas do que você imagina, e quando você para de tentar ler a linha inteira como uma coisa e, em vez disso, pensa nela em grupos, sempre no padrão, 1 3 3 3fica mais fácil de entender.
Na verdade, o Mac e alguns outros derivados do Unix usam uma 1 3 3 3 1estrutura - mais sobre isso no final deste post.

Esta explicação é tão simples quanto possível, mas inclui todos os conceitos relevantes...

Extraído dehttps://www.cs.swarthmore.edu/help/chmod.html

permissões de arquivo unix

As permissões de arquivo permitem conceder ou negar acesso aos seus arquivos e diretórios. Existem três tipos de permissões:

  • r = ler
  • w = escrever
  • x = executar

Essas permissões significam coisas diferentes para arquivos e diretórios.

Para arquivos:

  • ler - você pode abrir e ler o arquivo, mas também pode copiá-lo.
  • write - você pode modificar o arquivo
  • executar - você pode executar (executar) o arquivo se for executável (como um programa ou comando)

Para diretórios:

  • read - você pode acessar o diretório e ver o conteúdo.
  • write - você pode criar e remover arquivos nesse diretório.
  • execute - você pode fazer cd nesse diretório.

Use o comando ls -l para ver as permissões de arquivo para seus arquivos e diretórios. Aqui está um exemplo:

$ ls -l
total 188
drwx------  jk users  4096 2008-10-24 11:30 cs21/
drwx------  jk users  4096 2007-10-01 12:24 mail/
drwxr-xr-x  jk users  4096 2008-06-05 10:33 public/
-rw-------  jk users 83623 2008-09-10 08:29 turing.pdf
-rw-r--r--  jk users  9134 2008-01-24 16:26 unix-by-example

A primeira coluna acima são as permissões do arquivo (drwx------ ou -rw-r--r--), a segunda é o proprietário dos arquivos e diretórios (jk) e a terceira coluna é o grupo ( Usuários).

Para as permissões de arquivo, a primeira letra é “d” ou “-”, significando que é um diretório ou arquivo. Os próximos três caracteres (por exemplo, rwx) são as permissões do proprietário do arquivo. Depois vêm as permissões do grupo (por exemplo, todos no grupo de usuários) e, finalmente, as permissões para todos os demais. aqui estão alguns exemplos:

* drwx------ : directory only accessible by owner
* drwxr-xr-x : directory anyone can access
* -rwxr-xr-x : file anyone can read and execute
* -rw-r----- : file only people in the group can read

Para ver em quais grupos você está, execute o comando groups.

alterando permissões em um arquivo/diretório

Use o chmod (CHange MODe) para alterar as permissões do arquivo. O comando chmod pode usar números:

  • 4 - leia
  • 2 - escreva
  • 1 - executar

A razão pela qual não são 1,2,3 é porque eles precisam somar um número exclusivo, dependendo da combinação deles que você usa.

Então, para dar permissão de leitura e gravação:

ler + escrever = 4 + 2 = 6

ou permissão de execução e leitura:

executar + ler = 1 + 4 = 5

Ou apenas execute a permissão:

executar = 1

Ou todas as permissões:

ler + escrever + executar = 4 + 2 + 1 = 7

O comando chmod usa três números para três permissões:

proprietário, grupo, todos os usuários (nessa ordem)

O comando chmod básico é:

$ chmod ### directory/filename

Então, se você quiser dar acesso de leitura a todos (-rw-r--r--):

$ chmod 644 filename

Para tornar um arquivo legível, gravável e executável somente por você:

$ chmod 700 filename

Para tornar um arquivo legível e executável para você e seu grupo, mas legível apenas para todos os outros:

$ chmod 554 filename

chmod também pode usar letras: u para usuário (proprietário), g para grupo, o para outro e a para todos (u, g e o). Então você poderia fazer chmod g+r file para adicionar acesso de leitura ao grupo. Para obter mais informações sobre chmod, consulte a página man (man chmod).

Uma nota sobre esse personagem final

No Mac OS X (e em alguns outros derivados do Unix), há um caractere adicional após o conjunto final de permissões. Geralmente é um espaço, mas pode ser um + ou um @

Um + indica que o arquivo ou diretório possui informações de segurança adicionais, como uma ACL.
Um @ indica que o arquivo ou diretório possui atributos estendidos.

Você pode ver a ACL de um arquivo ou diretório incluindo a opção -e ao fazer um ls (com a opção -l) e atributos estendidos incluindo -@ (também com -l).
Uma discussão sobre ACLs e atributos estendidos está muito além desta resposta, mas mais informações sobre atributos estendidos podem ser encontradasaquie ACLsaqui(e é claro que o Google fornecerá mais informações do que você deseja saber sobre eles.)

informação relacionada