Estações de trabalho on-line OnWorks Linux e Windows

Logotipo

Hospedagem online grátis para estações de trabalho

<Anterior | Conteúdo | Próxima>

chmod - Alterar modo de arquivo

Para alterar o modo (permissões) de um arquivo ou diretório, o chmod comando é usado. Esteja ciente de que apenas o proprietário do arquivo ou o superusuário pode alterar o modo de um arquivo ou diretório. chmod suporta duas maneiras distintas de especificar mudanças de modo: representação de número octal ou representação simbólica. Abordaremos a representação do número octal primeiro.

imagem


O que diabos é Octal?

Octal (base 8) e seu primo, hexadecimal (base 16) são sistemas numéricos freqüentemente usados ​​para expressar números em computadores. Nós, humanos, devido ao fato de que nós (ou pelo menos a maioria de nós) nascemos com dez dedos, contamos usando um sistema numérico de base 10. Os computadores, por outro lado, nascem com apenas um dedo e, portanto, fazem todas as suas contagens em binário (base 2). Seu sistema numérico tem apenas dois numerais, 0 e 1. Então, em binário, a contagem se parece com isto:

0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011 ...

Em octal, a contagem é feita com os numerais de zero a sete, assim: 0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21 ...

A contagem hexadecimal usa os numerais de zero a nove mais as letras "A" a "F":

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, 13 ...

Embora possamos ver o sentido em binário (já que os computadores têm apenas um dedo), para que servem o octal e o hexadecimal? A resposta tem a ver com a conveniência humana. Muitas vezes, pequenas porções de dados são representadas em computadores como padrões de bits. Considere, por exemplo, uma cor RGB. Na maioria dos monitores de computador, cada pixel é composto de três componentes de cor: oito bits de vermelho, oito bits de verde e oito bits de azul. Um adorável azul médio seria um número de 24 dígitos:

010000110110111111001101

Você gostaria de ler e escrever esse tipo de número o dia todo? Eu acho que não. É aqui que outro sistema numérico ajudaria. Cada dígito em um número hexadecimal representa quatro dígitos em binário. Em octal, cada dígito representa três dígitos binários. Portanto, nosso azul médio de 24 dígitos pode ser condensado em um número hexadecimal de seis dígitos:

436FCD

Como os dígitos do número hexadecimal “se alinham” com os bits do número binário, podemos ver que o componente vermelho de nossa cor é 43, o verde 6F e o azul CD.

Hoje em dia, a notação hexadecimal (muitas vezes falada como “hex”) é mais comum do que a octal, mas como veremos em breve, a capacidade do octal de expressar três bits do binário será muito útil ...


Com a notação octal, usamos números octais para definir o padrão de permissões desejadas. Uma vez que cada dígito em um número octal representa três dígitos binários, isso mapeia bem para o


esquema usado para armazenar o modo de arquivo. Esta tabela mostra o que queremos dizer:


Tabela 9-4: Modos de arquivo em binário e octal


Octal

Binário

Modo de Arquivo

0

000

---

1

001

--x

2

010

-W-

3

011

-wx

4

100

r--

5

101

rx

6

110

rw-

7

111

rwx

Usando três dígitos octais, podemos definir o modo de arquivo para o proprietário, proprietário do grupo e

mundo:



[me @ linuxbox ~] $ > foo.txt

[me @ linuxbox ~] $ ls -l foo.txt

-rw-rw-r-- 1 me me 0 2016-03-06 14:52 foo.txt [me @ linuxbox ~] $ chmod 600 foo.txt

[me @ linuxbox ~] $ ls -l foo.txt

-rw ------- 1 me me 0 2016-03-06 14:52 foo.txt

[me @ linuxbox ~] $ > foo.txt

[me @ linuxbox ~] $ ls -l foo.txt

-rw-rw-r-- 1 me me 0 2016-03-06 14:52 foo.txt [me @ linuxbox ~] $ chmod 600 foo.txt

[me @ linuxbox ~] $ ls -l foo.txt

-rw ------- 1 me me 0 2016-03-06 14:52 foo.txt


Ao passar o argumento “600”, fomos capazes de definir as permissões do proprietário para ler e escrever, removendo todas as permissões do proprietário do grupo e do mundo. Embora lembrar o mapeamento octal para binário possa parecer inconveniente, você geralmente só terá que usar alguns dos mais comuns: 7 (rwx), 6 (rw-), 5 (rx), 4 (r--) e 0 (---).

chmod também suporta uma notação simbólica para especificar modos de arquivo. A notação simbólica é dividida em três partes: quem a mudança afetará, qual operação será realizada e qual permissão será definida. Para especificar quem é afetado, uma combinação dos caracteres “u”, “g”, “o” e “a” é usada da seguinte forma:


Tabela 9-5: notação simbólica chmod


Significado do símbolo

Significado do símbolo

u Abreviação de “usuário”, mas significa o proprietário do arquivo ou diretório.


imagem

g Proprietário do grupo.


imagem


imagem

o Abreviação de “outros”, mas significa mundo.


imagem

uma abreviação de “todos”. A combinação de “u”, “g” e “o”.


imagem


Se nenhum caractere for especificado, “todos” será assumido. A operação pode ser um “+” indicando que uma permissão deve ser adicionada, um “-” indicando que uma permissão deve ser retirada ou um “=” indicando que apenas as permissões especificadas devem ser aplicadas e que todas as outras devem ser removidos.

As permissões são especificadas com os caracteres “r”, “w” e “x”. Aqui estão alguns exemplos de notação simbólica:


Tabela 9-6: Exemplos de notação simbólica de chmod


Significado da notação

Significado da notação

u + x Adiciona permissão de execução para o proprietário.


imagem

ux Remova a permissão de execução do proprietário.


imagem

+ x Adicionar permissão de execução para o proprietário, grupo e mundo.

Equivalente a a + x.


imagem

o-rw Remova a permissão de leitura e gravação de qualquer pessoa além do proprietário e do proprietário do grupo.


imagem

go = rw Defina o proprietário do grupo e qualquer pessoa além do proprietário para ter permissão de leitura e gravação. Se o proprietário do grupo ou o mundo anteriormente tinham permissões de execução, eles são removidos.


imagem

u + x, go = rx Adicionar permissão de execução para o proprietário e definir as permissões para o grupo e outros lerem e executarem. Várias especificações podem ser separadas por vírgulas.


imagem


Algumas pessoas preferem usar a notação octal, algumas pessoas realmente gostam da simbólica. A notação simbólica oferece a vantagem de permitir que você defina um único atributo sem perturbar nenhum dos outros.

Dê uma olhada na chmod página man para mais detalhes e uma lista de opções. Uma palavra de cautela com relação à opção “--recursive”: ela atua tanto em arquivos quanto em diretórios, portanto não é tão útil quanto se esperava, pois raramente queremos que arquivos e diretórios tenham as mesmas permissões.


Top OS Cloud Computing na OnWorks: