Depois de obter minha pergunta respondida aqui e fazer algumas pesquisas sobre o resultado, encontrei um artigo que explica tudo muito bem. Gostaria de compartilhar algumas partes deste artigo aqui para futuras referências.
Permissões de visualização
Para chmod
alterar as permissões de um arquivo ou diretório, primeiro você precisa saber qual é o modo de acesso atual. Você pode visualizar o conteúdo de um diretório no terminal por cd
esse diretório e, em seguida, usar:
$ ls -l
A -l
opção é importante porque o uso ls
sem ela exibirá apenas os nomes de arquivos ou pastas no diretório.
Abaixo está um exemplo de uso ls -l
no meu diretório pessoal:
total 128
drwxr-xr-x 2 peter users 4096 Jul 5 21:03 Desktop
drwxr-xr-x 6 peter users 4096 Jul 5 17:37 Documents
drwxr-xr-x 2 peter users 4096 Jul 5 13:45 Downloads
drwxr-xr-x 2 peter users 4096 Jun 24 03:36 Movies
drwxr-xr-x 2 peter users 4096 Jun 24 03:38 Music
drwxr-xr-x 2 peter users 4096 Jun 26 00:09 Pictures
-rw-r--r-- 1 peter users 354 Jul 6 17:15 chmodtest
O que as colunas significam
A primeira coluna é o tipo de cada arquivo:
-
indica um arquivo normal.
d
indica um diretório, ou seja, uma pasta que contém outros arquivos ou pastas.
p
denota um pipe nomeado (aka FIFO).
l
indica um link simbólico.
As letras a seguir são as permissões. Nesta primeira coluna, estaremos mais interessados. A segunda é em quantos links existem em um arquivo, podemos ignorá-lo com segurança. A terceira coluna possui dois valores / nomes: O primeiro (no meu exemplo 'peter') é o nome do usuário que possui o arquivo. O segundo valor ('usuários' no exemplo) é o grupo ao qual o proprietário pertence (Leia mais sobre grupos).
A próxima coluna é o tamanho do arquivo ou diretório em bytes e as informações são as datas e horas em que o arquivo ou diretório foi modificado pela última vez e, é claro, o nome do arquivo ou diretório.
O que as permissões significam
As três primeiras letras, após a primeira -
ou d
, são as permissões que o proprietário possui. As próximas três letras são permissões que se aplicam ao grupo. As três letras finais são as permissões que se aplicam a todos os outros.
Cada conjunto de três letras é composto por r
w
e x
. r
está sempre na primeira posição, w
está sempre na segunda posição e x
está sempre na terceira posição. r
é a permissão de leitura, w
é a permissão de gravação e x
é a permissão de execução. Se houver um hífen ( -
) no lugar de uma dessas cartas, significa que a permissão não é concedida e, se a carta estiver presente, será concedida.
Pastas
No caso de pastas, os bits de modo podem ser interpretados da seguinte maneira:
r
(read) significa a capacidade de ler o índice do diretório especificado,
w
(write) significa a capacidade de escrever o índice do diretório especificado (criar novos arquivos, pastas; renomear, excluir arquivos, pastas existentes) se e somente se o bit de execução estiver definido. Caso contrário, essa permissão não terá sentido.
x
(execute) significa a capacidade de entrar no diretório especificado com o comando cd e acessar arquivos, pastas nesse diretório.
Alterando permissões usando o comando chmod
chmod
é um comando no Linux e outros sistemas operacionais semelhantes ao Unix. Permite alterar as permissões (ou modo de acesso) de um arquivo ou diretório.
Você pode alterar as permissões de duas maneiras diferentes: - Com base em texto - Com base em chmod
númerochmod
Método de texto
Para alterar as permissões ou o modo de acesso de um arquivo, usamos o comando chmod em um terminal. Abaixo está a estrutura geral do comando:
chmod who=permissions filename
Onde Quem é do grupo de letras e cada um significa para quem você vai dar permissão. Eles são os seguintes:
u - The user that owns the file.
g - The group the file belongs to.
o - The other users i.e. everyone else.
a - all of the above - use this instead of having to type ugo.
As permissões são as mesmas que já discutida ( r
, w
, e x
).
O comando chmod permite adicionar e subtrair permissões de um conjunto existente usando + ou - em vez de =. Isso é diferente dos comandos acima, que essencialmente reescrevem as permissões (ou seja, para alterar uma permissão de r--
para rw-
, você ainda precisa incluir o comando r
e w
depois =
o chmod
comando no comando. Se você perdeu r
, a r
permissão seria retirada como eles estão sendo reescritos com o =. Usando + e - evite isso adicionando ou removendo o conjunto atual de permissões).
Método numérico
chmod
também pode definir permissões usando números.
O uso de números é outro método que permite editar as permissões para todos os três proprietários, grupos e outros ao mesmo tempo. Essa estrutura básica do código é esta:
chmod xxx file/directory
Onde xxx é um número de 3 dígitos, em que cada dígito pode ter de 1 a 7. O primeiro dígito se aplica às permissões do proprietário, o segundo dígito se aplica às permissões do grupo e o terceiro dígito se aplica às permissões de todos os outros.
Nesta notação numérica, os valores r, we ex têm seu próprio valor numérico:
r=4
w=2
x=1
Para criar um número de três dígitos, é necessário considerar quais permissões você deseja que um proprietário, grupo e usuário tenham e totalizar seus valores. Por exemplo, digamos que eu queira conceder ao proprietário de um diretório permissões de leitura e gravação e execução, e que eu deseje agrupar e todos os outros apenas ter permissões de leitura e execução. Eu apresentaria os valores numéricos da seguinte forma:
Owner: rwx = 4+2+1=7
Group: r-x = 4+0+1=5 (or just 4+1=5)
Other: r-x = 4+0+1=5 (or just 4+1=5)
Final number = 755
$ chmod 755 filename
Isso equivale a usar o seguinte:
chmod u=rwx filename
chmod go=rx filename
A maioria das pastas / diretórios é definida como 755 para permitir a leitura, gravação e execução para o proprietário, mas nega a gravação para todos os outros, e os arquivos são normalmente 644 para permitir a leitura e gravação para o proprietário, mas apenas a leitura para todos os demais, consulte a última nota sobre a falta de permissões x com arquivos não executáveis - é a mesma coisa aqui.