|------indica que é um diretorio
| |----------------leitura do usuário
| ||------------------escrita do usuario
| |||--------------------gravação do usuário
| |||
| ||| |------------leitura do grupo
| ||| ||--------------escrita do grupo
| ||| |||----------------gravação do grupo
| ||| |||
| ||| ||| |--------leitura de outros
| ||| ||| ||----------escrita de outros
| ||| ||| |||------------gravação de outros
| ||| ||| |||
| ||| ||| |||
v vvv vvv vvv
d rwx rwx rwx
Antes de mais nada voltaremos lá nas aulas de conversões binárias do professor Targino, sabemos que para converter um número binário para decimal a melhor forma é seguir a sequência abaixo:
1 1 1 0 0 1 1 = Número binário que iremos converter para decimal se contar-mos veremos que tem 7 bits esta sequência binária, então começaremos com potência de 6 ou ^6, como a base é binária e queremos passar para decimal utilizaremos sempre o número base 2, vamos lá só pra relembrar.
2^6*1=64
2^5*1=32
2^4*1=16
2^3*0= 0
2^2*0= 0
2^1*1= 2
2^0*1= 1 --> Todo número elevado a zero é zero só que multiplicado por 1 ficaria 1 mesmo.
Veja que a terceira coluna numérica, a sequência de cima para baixo é a mesma sequência do nosso número binário em questão.
Somaremos os resultados e ficaria um valor de 64+32+16+0+0+2+1= 115 este é o nosso número decimal.
Para simplificar as coisas podemos utilizar um recurso que facilita a nossa compreenssão e agilisa nossa conversão, veja o exemplo abaixo, se iniciar-mos a sequência da direita para esquerda iniciaremos sempre com o nº 1 e ficaria assim:
1 2 4 8 16 32 64 128 256 512 1024, então para dar tudo certo inverta esta sequência assim:
1024 512 256 128 64 32 16 8 4 2 1, esta é a sequência correta para a nossa conversão.
Se tivesse-mo que converter o seguinte número binário para decimal fariamos assim.
1024 512 256 128 64 32 16 8 4 2 1
1 1 1 1 1 1 1 1 1 1 1
A maquina entende que o número 1 é um estado ligado ou sim ou positivo e entende que o zero é um estado desligado ou não ou negativo no sistema computacional. Então o nosso número binário estão todos ligado se tivesse algum zero diriamos que teria algum desligado, como estão todos ligado somamos todos, 1024+512+256+128+64+32+16+8+4+2+1=2047 o resultado é o número decimal que precisamos.
Vamos voltar para nossa questão principal, permissões de acessos à arquivos e pastas, onde só precisamos de utilizar três posições binárias e nada mais ou seja trabalhar com número decimal máximo 7.
4 2 1 = 7
1 1 1 = número binário
Onde só somariamos os binários ligados ou seja com "1",os que estão zero "0" quer dizer que estão desligado ou nulo não será usado.
Então o valor em decimal ficaria assim:
4+2+1=7 isso se aplica da mesma forma com o nosso comando de permissão, se podemos enxergar o rwx é sinal que estão todos ligados o representado em binário ficaria assim 111 ou 7 em decimal, mas se podemos ver somente r-- então somente o "r" está ligado o que indica o número binário 100 que convertido para decimal ficaria 400 ou 4, ou seja, daremos comando somente leitura seja pra quem for especificado usuário, grupo ou outros o que também pode ser representado como chmod 444 [nome o arquivo ou pasta] sendo assim usuário, grupo ou outros só poderão ler e não poderão escrever e nem executar nada, no final do comando será representado assim:
- r-- r-- r-- assim estamos dando somente permissão de leitura para todos neste "-" arquivo
d r-- r-- r-- assim estamos dando somente permissão de leitura para todos neste "d" diretório
Para fixar-mos vamos dar o comando chmod 154 [nome do arquivo ou pasta]
Vamos representa este decimal em binário ficaria assim: --x r-x r--
Como já sabemos a primeira coluna de 3 letras (rwx) representa permissões para usuários a segunda para o grupo e a terceira para outros, traduzindo estamos dizendo o seguinte:
001=1 = --x = O usuário só possuíra permissão de execução
101=5 = r-x = Todos do grupo só terá permissão de leitura e execução mas não poderá gravar na pasta ou arquivo
100=4 = r-- = Os outros só poderão ler e não terão permissão para gravar ou executar nada.
=======================================================================================
|------o "d" indica que é um diretorio
| |----------------leitura do usuário
| ||------------------escrita do usuario
| |||--------------------gravação do usuário
| |||
| ||| |------------leitura do grupo
| ||| ||--------------escrita do grupo
| ||| |||----------------gravação do grupo
| ||| |||
| ||| ||| |--------leitura de outros
| ||| ||| ||----------escrita de outros
| ||| ||| |||------------gravação de outros
| ||| ||| |||
| ||| ||| |||
v vvv vvv vvv
d rwx rwx rwx
1 111 111 111
7 7 7 = chmod 777 [nome do diretório]
Quando existe um letra indica que o íten está ligado mas se aparecer um "-" (traço) indica que está desligado, no exemplo acima está dizendo que tanto o usuário o grupo como os outros terão acesso total ao diretório, pois existe o "d" de diretório e todos estão ligados, agora se estivesse assim:
|------o "-" indica que é um arquivo
| |----------------leitura do usuário
| ||------------------escrita do usuario
| |||--------------------gravação do usuário
| |||
| ||| |------------todos que pertence ao grupo pode ler o arquivo ou a pasta (leitura do grupo)
| ||| ||--------------ninguém que não pertença ao grupo pode escrever (escrita do grupo)
| ||| |||----------------todos que pertence ao grupo pode gravar no arquivo ou pasta (gravação do grupo)
| ||| |||
| ||| ||| |--------leitura de outros negada
| ||| ||| ||----------escrita de outros negada
| ||| ||| |||------------gravação de outros negada
| ||| ||| |||
| ||| ||| |||
v vvv vvv vvv
- rwx r-x ---
0 111 101 000
7 5 0 = chmod 750 [nome do arquivo]
No exemplo logo acima está dizendo que é um arquivo pois existe um "-" traço, a falta do "d" indica um arquivo e não um diretório e que o usuário terá permissão total, mas o grupo só poderá ler e gravar mas não poderar escrever no arquivo e os demais não podera fazer nada nem ler nem escrever e nem executa o arquivo, assim o comando ficaria assim:
chmod 750 [nome do arquivo]
Pode-se dar permissão de varias maneiras a mais usual é utilizando a forma decimal utilizando o comando chmod que sem abreviações significa ch(change) mod(mode) e que em portugues quer dizer (ch)alterando o (mod)modo de acesso, sendo assim utilisaremos o seguinte comando: chmod 777 onde cada sete significa uma sequencia de três letras, nesse caso rwx do usuário= 7 rwx do grupo= 7 e rwx de outros= 7 o que ficaria representado da seguinte forma binária:
rwx rwx rwx
111 111 111
Que tranformando de binário para decimal firaria assim
7 7 7
O que explica porque utilizar o comando chmod 777 para dar permissão total a qualquer um que acessar a pasta ou arquivo em questão.
Vamos a mais um exemplo:
Seguinte comando: chmod 700 onde cada sete significa uma sequencia de três letras, nesse caso rwx do usuário= 7 --- do grupo= 0 e --- de outros= 0 o que ficaria representado da seguinte forma binária:
rwx --- ---
111 000 000
Que tranformando de binário para decimal firaria assim:
7 0 0
O que significaria que estamos dando total acesso para o usuário dono do arquivo ou pasta e que os demais seja ele quem for não poderá sequer acessar a pasta ou abrir o arquivo pois não possui permissão.
Para finalizar vamos dar permissão 666 para um arquivo o que representado ficaria assim:
Dariamos o seguinte comando: chmod 666 [o nome do arquivo]
O que ficaria representado da seguinte forma binária:
- rwx rwx rwx
110 110 110
Que tranformando de binário para decimal firaria assim:
6 6 6
Sendo assim estamos dando permissão de leitura e gravação para todos com o comando: chmod 666 [nome do arquivo] onde nesse caso rw- do usuário= 6 rw- do grupo= 6 e rw- de outros= 6
========================================================
Outa forma de dar-mos permissões é da seguinte forma:
Se quero que o usuário tenha somente permissão de leitura então digito:
chmod u+r nome da pasta ou arquivo = mudar permissão de leitura para usuario
Se quero que o usuário tenha somente permissão de escrita então digito:
chmod u+w nome da pasta ou arquivo = mudar permissão de gravação para usuario
Se quero que o usuário tenha somente permissão de execução então digito:
chmod u+x nome da pasta ou arquivo = mudar permissão de execução para usuario
Se quero retirar qualque uma dessas permissões digito o sinal de "-" menos ao invés do "+" mais e da mesma forma posso fazer com os grupos e outros, é só alterar a letra que indica que será manipulado:
u= usuário
g= grupo
o= outros
+= adicionar a permissão
-= retirar a permissãovoltando lá nas aulas do professor Targino sabemos que para converter um número binário para decimal
A melhor forma é seguir uma sequência como a seguir:
64 32 16 8 4 2 1
1 1 1 0 0 1 1 = número binário
Onde só somariamos os binários ligados ou seja com "1","0" quer dizer desligado ou nulo não será usado.
Então o valor em decimal ficaria assim:
64+32+16+2+1=115 e não 127 pois os dois zeros que teriam os valores somados e dariam 12 não conta.
Isso se aplica da mesma forma com o nosso comando de permissão, se podemos enxergar o rwx é sinal que estão todos ligados, mas se podemos ver somente r-- então somente o "r" está ligado o que indica o número binário 100 que convertido para decimal ficaria 400 ou seja daremos comando somente leitura seja pra quem for especificado, usuário, grupo ou outros o que também pode ser representado como chmod 444 [nome o arquivo ou pasta] sendo assim todos só poderão ler e não poderão escrever e nem executar nada.
Aqui tem outra forma que não conhecia e que foi ensinada pelo professor da disciplina do 2º semestre SL=Software Livre da faculdade FAJESU. Utilizamos somente letras que representa os respectivos ítens:
u = user ou usuário
g = group ou grupo
o = others ou outros
+ = adiciona permissões ou alguma característica ao ítem
- = retira permissões ou alguma característica ao ítem
r = reader ou leitura
w = write ou escrever
x = execute ou executar
montamos os comandos assim:
u+r = permissão de leitura para usuário
u+w = permissão de gravação para usuário
u+x = permissão de gravação para usuário
g+r = permissão de leitura para o grupo
g+w = permissão de gravação para o grupo
g+x = permissão de gravação para o grupo
o+r = permissão de leitura para outros
o+w = permissão de gravação para outros
o+x = permissão de gravação para outros
Os comandos ficariam assim:
chmod u+r [nome da pasta ou arquivo] = mudar permissão de leitura para o usuário
chmod u+w [nome da pasta ou arquivo] = mudar permissão de leitura para o usuário
chmod u+x [nome da pasta ou arquivo] = mudar permissão de leitura para o usuário
chmod g+r [nome da pasta ou arquivo] = mudar permissão de leitura para o grupo
chmod g+w [nome da pasta ou arquivo] = mudar permissão de leitura para o grupo
chmod g+x [nome da pasta ou arquivo] = mudar permissão de leitura para o grupo
chmod o+r [nome da pasta ou arquivo] = mudar permissão de leitura para outros
chmod o+w [nome da pasta ou arquivo] = mudar permissão de leitura para outros
chmod o+x [nome da pasta ou arquivo] = mudar permissão de leitura para outros
Se a forma de dar permissão for igual para todos pode ser utilizado apena um comando como abaixo.
chmod ugo+r = altera permissão de todos para leitura
chmod ugo+w = altera permissão de todos para gravação
chmod ugo+x = altera permissão de todos para execução
chmod ugo+rw = altera permissão de todos para leitura e gravação
chmod ugo+rx = altera permissão de todos para leitura e execução
chmod ugo+rwx = altera permissão de todos para leitura, gravação e execução
São muitas as possíbilidades mas dessa forma em alguns momentos teremos que utilizar mais que um comando para alterar permissões complexas como por exemplo:
Eu quero permissão total para um usuário em determinada pasta /eu, mas não quero que quem pertencer ao grupo deste usuário execute ou grave nesta pasta e que outros que não pertença ao grupo e que não seja o próprio usuário só possa ler e executar (abrir a pasta).
No formarto acima o comando ficaria assim:
chmod u+rwx eu aqui eu dou permissão total ao usuário
chmod g+r eu aqui eu dou permissão de somente leitura ao grupo
chmod o+rx eu aqui eu dou permissão de leitura e execução para outros
Note que precisamos de 3 comandos para resolver esta questão, agora vamos resolver esta questão na forma decimal, vou colocar detalhes para que entendam melhor, vamos lá:
A questão representada aqui seria assim:
d rwx r-- r-x aqui a questão representada na forma verbouse do sistema
d 111 100 101 aqui a questão representada na forma binária
d 7 4 5 aqui a questão representada na forma decimal
Então observe que com apenas um comando resolvemos a questão acima, assim:
chmod 745 eu (assim eu permito de uma só vez que o usuário tenha premissão total o grupo possa apenas ler e outros tenha permissão de leitura e gravação).
Um exemplo prático abaixo:
usuario@maquina:/home/familia# mkdir eu criamos um diretório
usuario@maquina:/home/familia# ls listamos o diretório criado
eu diretório listado
usuario@maquina:/home/familia# ls -l listando diretório e suas permissões
drwxr-xr-x 2 root root 4096 2010-09-30 12:36 eu diretório listado com suas permissões
usuario@maquina:/home/familia# chmod ugo+rwx eu alterando permissões de todos de uma só vez ao diretório
usuario@maquina:/home/familia# ls -l listando diretório e suas permissões
drwxrwxrwx 2 root root 4096 2010-09-30 12:36 eu diretório listado com suas novas permissões
usuario@maquina:/home/familia# chmod ugo-rwx eu retirando todas permissões de uma só vez ao diretório
usuario@maquina:/home/familia# ls -l listando diretório e suas permissões
d--------- 2 root root 4096 2010-09-30 12:36 eu diretório listado sem suas permissões
Se quisermos colocar somente gravação para o usuário, leitura para o grupo e gravação para outros o comando fica assim:
usuario@maquina:/home/familia# chmod u-r eu dando permissão de leitura ao usuário
usuario@maquina:/home/familia# chmod g-w eu dando permissão de gravação ao grupo
usuario@maquina:/home/familia# chmod o-x eu dando permissão de execução para outros
Sim teremos que digitar três comandos para ficar assim no final:
usuario@maquina:/home/familia# chmod u+r eu dando permissão de leitura ao usuário
usuario@maquina:/home/familia# ls -l listando diretório e suas permissões
dr-------- 2 root root 4096 2010-09-30 12:36 eu diretório listado com suas novas permissões
usuario@maquina:/home/familia# chmod g+w eu dando permissão de gravação ao grupo
usuario@maquina:/home/familia# chmod o+x eu dando permissão de execução a outros
usuario@maquina:/home/familia# ls -l listando diretório e suas permissões
dr---w---x 2 root root 4096 2010-09-30 12:36 eu diretório listado com suas permissões
Então se quiser alterar todos de uma vez só mesmo de forma complexa como esta permissão use a forma decimal assim:
Primeiro vamos tirar as permissões novamente assim:
usuario@maquina:/home/familia# chmod ugo-rwx eu retirando todas permissões de uma só vez ao diretório
usuario@maquina:/home/familia# ls -l listando diretório e suas permissões
d--------- 2 root root 4096 2010-09-30 12:36 eu diretório listado sem suas permissões
Agora vamos dar permissão de gravação para o usuário, execução para o grupo e leitura para outros onde teria que ficar
Assim: d -w- --x r-- o que em binário ficaria assim:
d 010 001 100 e convertendo para decimal ficaria assim:
d 2 1 4 então o comando já está pronto é só digitar chmod 214 eu
Vamos lá:
usuario@maquina:/home/familia# chmod 214 eu
usuario@maquina:/home/familia# ls -l
d-w---xr-- 2 root root 4096 2010-09-30 12:36 eu
Agora só depende da imaginação e qual método ou forma pretende utilizar, está é a forma básica de colocar e retirar permissões de acesso a pastas e arquivos, existe outras formas para tratar arquivos de sistemas, converter um simples arquivo em executável e vamos ver a seguir, ha! lembra do "d" ou "-" então existe forma de alterar isso para tornar um Arquivo comum em binário etc isso é mais na frente que falaremos.
Texto escrito por Wanderson
Baseado nas explicações do professor Fausto Andrade
Aluno do 2º semestre de redes da faculdade FAJESU
Este texto faz analogia a disciplina de SOFTWARE LIVRE
Responsável pela disciplina professor Fausto Andrade dos Santos Junior
Este é um blog voltado para todo tipo tecnologia, apresentando especificamente as principais experiências do autor com relação as demais formas de acessar, utilizar e configurar equipamentos e serviços que de certa forma possibilita a acessibilidade a toda e qualquer tecnologia disponível.Os posts disponibilizado aqui, é parte importante da vivência do autor na prática do seu dia a dia, servindo de consulta posterior, evitando que você cometa erros sem solução, essa solução pode estar aqui
Mostrando postagens com marcador livre. Mostrar todas as postagens
Mostrando postagens com marcador livre. Mostrar todas as postagens
quinta-feira, 30 de setembro de 2010
Assinar:
Postagens (Atom)