Pular para o conteúdo principal

Entendendo as permissões de arquivos (chmod)

Boa tarde,

Para pessoas que não entendem muito de chmod, estou disponivilizando este artigo explicando um pouco sobre o mesmo.

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ãoo 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
  1. d: tipo de arquivo (diretório);
  2. rwx: permissões do proprietário e/ou usuário;
  3. rwx : permissões para usuários do mesmo grupo;
  4. 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.

Tentei de uma maneira objetiva esclarecer um pouco sobre permissões de arquivos. Espero que isso ajude quem ainda tinha dúvidas sobre o assunto.


Abraços,

Fábio Vieira
System and Network Admin Linux and Windows

E-mail: ensinalinux@gmail.com
Website: www.winlinuxtecnologia.com
Tel.: (41) 9893-8701

Comentários

Postagens mais visitadas deste blog

Trabalhando com Raid via Software no Debian / Ubuntu

Redundant Array of Independent Drives , também denominado Redundant Array of Inexpensive Drives , mais conhecido como simplesmente RAID ou ainda em português: Conjunto Redundante de Discos Independentes ou também Conjunto Redundante de Discos Econômicos ou ainda Arranjo Redundante de Discos Independentes, é um meio de se criar um sub-sistema de armazenamento composto por vários discos individuais, com a finalidade de ganhar segurança e desempenho. Popularmente, RAID seriam dois ou mais discos (por exemplo, HD ou disco rígido) trabalhando simultaneamente para um mesmo fim, por exemplo, citando o exemplo de RAID -1 logo abaixo, serviria como um espelhamento simples, rápido e confiável entre dois discos, para fazer o backup de um disco em outro. Apesar do RAID oferecer segurança e confiabilidade na adição de redundância e evitar falhas dos discos, o RAID não protege contra falhas de energia ou erros de operação. Falhas de energia, código errado de núcleo ou erros o...

Códigos de Status do Squid

Boa tarde galera, Muitos trabalham com servidores proxy usando squid e várias vezes temos que analisar os logs de acesso para tentar entender o que está acontecendo. Todos que já viram um log do squid conseguem identificar o site acessado, o usuário ou mesmo se o acesso foi bem sucedido ou não, contudo há alguns códigos que chamam a atenção. Veja um trecho de um log do squid a seguir: 1199263171.923    285 192.168.254.12 TCP_DENIED/403 1503 GET http://www.menshealth.com/media/images/cma/dec04_lust5_200x200.jpg jose NONE/- text/html 1199263176.363    302 192.168.254.15 TCP_MISS/000 0 GET http://www.google.com.br/carlos DIRECT/74.125.47.147 - 1199263176.379      0 192.168.254.15 TCP_DENIED/407 2033 GET http://www.folha.uol.com.br/folha/common.css - NONE/- text/html 1199263176.439     58 192.168.254.15 TCP_IMS_HIT/200 32356 GET http://www.folha.uol.com.br/folha/common.css carlos NONE/- text/css Nesses logs podemos i...

Instalando Banco de Dados Firebird no Linux

Bom dia! Para muitos tem sido uma tortura instalar um servidor Firebird Linux. Reinstalar então nem se fala. Na internet há "trocentos" tutoriais ensinando. Mas você segue tudo à risca e não dá certo. Às vezes só consegue depois de ler uns dez tutorias e catando uma informação aqui e outra ali. Espero que este tutorial seja o único que você vai precisar ler para poder instalar o Firebird. Preparando o Terreno Para o modo como instalaremos o Firebird , o seu Linux precisa ter instalado a biblioteca libstdc++5 . Se você usa Ubuntu, Debian ou derivados, digite num terminal:  # apt-get install libstdc++5 Se você usa uma distribuição baseada em pacotes RPM (como openSUSE , Fedora e outras), terá que instalar o pacote compat-libstdc++ . Na maioria das distribuições RPM você instala assim: # yum install nome_do_pacote_rpm Baixando e instalando o Firebird   Acesse o site firebirdsql.org e depois clique em "Download Firebird 2.5.1" (versão disponíve...