Skip to content

Instantly share code, notes, and snippets.

@aalvesjr
Created March 15, 2012 03:31
Show Gist options
  • Select an option

  • Save aalvesjr/2041706 to your computer and use it in GitHub Desktop.

Select an option

Save aalvesjr/2041706 to your computer and use it in GitHub Desktop.
Entendendo as permissões [linux]
Entendendo as permissões
Usa-se muito o chmod e pouco fala-se dele.
Muitas vezes a pessoa não sabe o que está fazendo quando dá uma permissão 777 ou 455 para um arquivo. Vou explicar mais a fundo o funcionamento do chmod.
Um 'ls -la' no Linux tem o seguinte output:
drwxr-xr-x 2 root root 4096 Set 22 10:08 temp
-rwxrwxr-x 1 garcia garcia 1088 Jul 5 16:17 torpedo
-rw-rw-r-- 1 garcia garcia 18283 Ago 3 13:10 videoteca.tar.gz
-rw------- 1 garcia garcia 4857 Ago 11 11:46 .viminfo
drwxr-xr-x 2 garcia garcia 4096 Jul 15 11:34 vlc
-rw-rw-r-- 1 garcia garcia 14872515 Jul 15 11:30 vlc-binary.tar.gz
drwxr-xr-x 2 garcia garcia 4096 Mar 4 2004 webalizer-2.01-10-x86
Onde constam vários atributos como nome, data, usuário proprietário e as permissões do arquivo. Essas permissões estão na primeira coluna, são aquelas letras "drwx".
Funciona da seguinte forma: o primeiro caractere dos atributos diz se o arquivo é um diretório ou um arquivo. Se tiver o "d" indica que é diretório.
Os próximos caracteres se dividem em 3 grupos de 3 caracteres.
Então, fica subdividido dessa forma:
d rwx rwx rwx
d: tipo de arquivo (diretório);
rwx: permissões do proprietário e/ou usuário;
rwx : permissões para usuários do mesmo grupo;
rwx: permissões para todos usuários.
Mas o que significa rwx?
r - read (permissão de leitura);
w - write (permissão de escrita);
x - execute (permissão de execução.
No DOS ou Windows, quando queremos executar um arquivo temos que usar extensão .exe, .com, .bat, etc. Em UNIX você seta como permissão.
Ah tá, entendi o que significam as letras, mas... o que significa "chmod 455"??? De onde vem esses números?
O chmod tem a flexibilidade de trabalhar com valores decimais de 0 a 7. Cada valor tem uma combinação de permissões pelos 3 grupos de caracteres que expliquei acima. Vamos à elas.
0 : --- (nenhuma permissão)
1 : --x (somente execução)
2 : -w- (somente escrita)
3 : -wx (escrita e execução)
4 : r-- (somente leitura)
5 : r-x (leitura e execução)
6 : rw- (leitura e escrita)
7 : rwx (leitura, escrita e execução)
Vamos a exemplos práticos para que vocês entendam como funcionam isso na prática.
# chmod 755 arquivo.ext
Atribui permissão de leitura, escrita e execução para o dono do arquivo (7), leitura e execução para usuários do mesmo grupo (5) e também para outros usuários (5).
# chmod 640 arquivo.ext
Atribui permissão de leitura e escrita (6) para o dono do arquivo, somente leitura para usuários do mesmo grupo (4) e nenhuma permissão para outros usuários (0).
# chmod 777 arquivo.ext
Permissão total de leitura, escrita e execução para TODOS! Se o servidor que você hospeda seus sites deixar brecha para acessarem ou simplesmente listarem seu diretório ou pasta, outros usuários poderão modificar seus arquivos. por isso é conveniente usar com cuidado.
@endersonmenezes
Copy link

Copiado pro meu Notion, valeu chefia! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment