Permissões em Unix

Uma permissão é uma autorização: sem permissão, a acção não pode ser executada.

Essas permissões, para os ficheiros, são as de

  1. r: read, ver (ler o que lá está)
  2. w: write, escrever (modificar o conteúdo, apagar o ficheiro)
  3. x: execute, executar, se se tratar de um ficheiro executável (programa, script).

Para as pastas são outras, mas semelhantes: as de

  1. r: read, ver o conteúdo da pasta,
  2. w: write, modificar (escrever) o conteúdo da pasta (colocar lá um ficheiro, criar um novo, apagar um ficheiro dessa pasta)
  3. x: execute, executar, o que significa entrar na pasta com o comando cd (Change Directory).

As permissões são dadas em relação a três tipos de utilizadores: o proprietário (owner, user), um grupo de utilizadores (group), e os outros utilizadores (other). A mnemónica é (H)ugo.

O user ou owner é, regra geral, o utilizador ou serviço do sistema que criou o ficheiro ou pasta. Apenas o owner de um ficheiro ou pasta lhe pode mudar as permissões.

Os grupos de utilizadores podem ser não só grupos de trabalho, mas grupos que usam um dados recurso, como a impressora.

Fica assim que entre grupos e permissões estas se dividem em nove, cada uma com um valor de sim ou não:
Ler Escrever Executar
Utilizador (Owner)      
Grupo      
Outros      

Mais: consola

Tudo isto aqui é muito interessante, mas duvido que queira usar a consola de Unix ou que venha a ter necessidade de usar as permissões a este nível. Se quiser passar por cima disto sem ver, clique aqui.

O comando ls -l organiza os dados de permissões dos ficheiros e pastas numa só cadeia literal:

-rwxr-xr-x  1 jmccm jmccm       75 2008-09-17 16:56 hello.sh
drwxr-xr-x  2 jmccm jmccm    12288 2008-11-03 12:22 Imagens
-rwxr--r--  1 jmccm jmccm     7545 2008-11-03 12:46 index.htm
drwxrwxr--  1 jmccm stuff    20050 2008-10-26 11:22 Cartas

Esta surge logo no início dos resultados produzidos pelo comando, com o aspecto "-rwxr-xr-x". Na segunda coluna, segue-se-lhe um número misterioso para nós (hard links), na terceira coluna quem é o user/owner e na quarta coluna qual é o grupo (stuff para Cartas).

No caso acima:

Note que criei os nomes das pastas com maiúscula inicial e os dos ficheiros em minúscula. Esta convenção era habitual. Pode ou não ser-lhe útil; talvez não.

O comando que permite mudar as permissões é o chmod. Vai achar útil usar com ele, como já foi dito, os comandos ls e cd. Se lhe propuserem estudar o comando chmod com os modos octais, ignore completamente: é desnecessário e é abstruso.

Criar uma pasta pública

Não tem nada que saber. Na sua pasta de login (aquela onde vai ter quando faz entra no sistema) crie uma pasta, e chame-lhe pub, public, publico, etc..., algo que permita aos outros encontrá-la. Clique no ícone com o botão direito, escolha Propriedades, separador Permissões e mude-lhe as permissões de grupo e outros para rwx. Pronto.

Note que o nome não tem nada de mágico. Podia chamar a pasta Escaravelho e depois mudar-lhe as permissões para a tornar pública. Os outros utilizadores poderiam era ficar confusos sobre onde lhe deixar ou ir buscar ficheiros.

Trocar ficheiros

A pasta pública serve para outra pessoa lhe pôr ficheiros à disposição. Se não tiver uma pasta com direitos rwx (read, write, execute) para outros, eles não lhe podem entregar ficheiros.

Outra coisa a reter, quando quiser enviar uma pasta sua (de que seja o owner) para qualquer local fora das suas pastas, é que deve atribuir direitos de leitura e escrita (eventualemente execução) para grupo e outros. Só você, o owner, pode mudar os direitos dos seus ficheiros. Se entregar um ficheiro a alguém, mas sem lhe dar permissão de leitura, vai ter uma pessoa muito irritada.