A questão das permissões

Clicando sobre as propriedades de qualquer pasta ou arquivo dentro do gerenciador de arquivos, você encontra um menu com o ajuste de permissões, onde pode definir individualmente as permissões para o dono do arquivo, para usuários que façam parte do mesmo grupo e para os outros, que inclui todos os demais usuários com acesso ao sistema:

Cada um dos campos aceita três possibilidades: “Nenhum”, “Apenas leitura” e “Leitura e escrita”. Por default, o dono é o único que pode ler e escrever, os demais (grupo e outros) podem apenas ler o arquivo, sem modificá-lo.

No caso dos arquivos, existe uma quarta permissão, que é o campo “Permitir execução do arquivo como um programa”. Esta é uma daquelas diferenças fundamentais entre o Linux e o Windows: o sistema não decide quais arquivos são programas pela extensão, mas sim pelas permissões. Isso aumenta bastante a segurança do sistema, mas, por outro lado, causa um pouco de dor de cabeça em algumas situações. Sempre que você baixar um instalador qualquer via web (o driver da nVidia, por exemplo), vai precisar primeiro ativar a permissão de execução nas propriedades do arquivo antes de conseguir instalá-lo.

O “dono” do arquivo é por default o usuário que o criou. Apenas este usuário pode alterar as permissões de acesso ao arquivo ou à pasta. Em seguida, vem a configuração do grupo, que permite que vários usuários tenham acesso a um arquivo ou pasta, sem ter que apelar para o campo “outros” que daria acesso a qualquer um.

Imagine o caso de um servidor de arquivos, usado por diversos usuários diferentes, onde você precise fazer com que um determinado arquivo fique acessível apenas para três usuários específicos. Uma maneira simples de resolver o problema seria criar um novo grupo, adicionar a ele os usuários que devem ter acesso e, em seguida, alterar as permissões de acesso, para que o grupo passe a ser dono do arquivo e os integrantes sejam os únicos com permissão para ler e fazer alterações.

Você pode criar novos grupos e adicionar usuários a eles através do “users-admin” (“Sistema > Administração > Usuários e Grupos”, nas distribuições derivadas do GNOME), ou usando outra ferramenta gráfica incluída na distribuição, como o UserDrake (disponível no Mandriva) ou o Kuser (disponível em muitas distribuições com o KDE).


Configuração dos grupos com o users-admin

Para criar um novo grupo usando o users-admin, clique em “Gerenciar Grupo > Adicionar Grupo”. Na janela que será aberta, especifique o nome do grupo e os usuários que farão parte dele. Um mesmo usuário pode fazer parte de vários grupos simultaneamente. Muita gente cria um grupo diferente para cada pasta importante, de forma a poder definir individualmente quem terá acesso a ela.

Você notará que nesta tela aparecem vários usuários que não são mostrados na tela principal, como o “bin”, “daemon” e “mail”. Estes são usuários ocultos do sistema, contas sem privilégios e que não possuem senhas definidas (é simplesmente impossível fazer login com qualquer uma delas), que são usadas para isolar os programas, fazendo com que cada um tenha acesso apenas a seus próprios arquivos. Isso limita muito os danos que um aplicativo ou serviço com bugs ou falhas de segurança pode causar quando alguma coisa dá errado.

De fato, a configuração default da maior parte das distribuições Linux atuais, é dar acesso de leitura para a maioria das pastas (com exceção, naturalmente, dos arquivos de senha e outros arquivos críticos do sistema) para todos os usuários, mas, ao mesmo tempo, dar acesso de gravação apenas para o diretório home de cada um.

Por default, o único que pode alterar o dono das pastas é o próprio root (os usuários podem alterar apenas o grupo e ainda assim somente entre os grupos de que fazem parte). Um dos motivos para isso é o suporte a quotas, que (embora não seja muito usado em desktops) está disponível em qualquer distribuição Linux. Se qualquer usuário pudesse alterar a posse dos arquivos, transferindo-os para outros usuários, o sistema de quotas seria muito fácil de burlar.

A maneira mais simples de alterar os donos e grupos dos arquivos e pastas é simplesmente abrir uma janela do gerenciador de arquivos como root, como em:

$ gksudo nautilus

Diferente do que temos ao rodar o gerenciador de arquivos como usuário, ao acessar as propriedades dos arquivos como root os campos do dono e do grupo ficam desbloqueados, permitindo que você ajuste as permissões livremente.

Como de praxe, você pode também ajustar as permissões via linha de comando, usando os comandos “chmod” e “chown“. O primeiro permite ajustar as permissões dos arquivos e pastas, enquanto o segundo permite transferir a posse, dizendo a qual usuário e a qual grupo determinada pasta ou arquivo pertence.

Um exemplo comum é quando você cria ou copia uma pasta como root e, devido a isso, fica sem poder modificar os arquivos usando seu login de usuário. Uma maneira simples de resolver o problema seria usar o comando “chown” (como root) para transferir a posse da pasta, como em:

# chown -R gdh /home/gdh/arquivos/

O “-R” no comando faz com que ele seja aplicado recursivamente, ou seja, altere as permissões não apenas da pasta, mas de todo o conteúdo. Sem ele, você passaria a conseguir escrever dentro da pasta, mas ainda continuaria sem acesso às subpastas dentro dela. Em seguida, temos o “gdh”, que indica o usuário e a pasta que será modificada.

Outro uso comum é especificar também o grupo, como em:

# chown -R gdh:gdh /home/gdh/arquivos/

Você pode também criar novos usuários e alterar as senhas usando o “adduser e o “passwd“, que permitem, respectivamente, adicionar novos usuários e alterar as senhas de acesso posteriormente, como em:

# adduser joao
(cria o usuário)

# passwd joao
(altera a senha posteriormente)

O próprio usuário pode alterar a senha usando o comando “passwd”, desde que ele saiba a senha antiga. Se o usuário esqueceu a senha, você pode definir uma nova executando o comando como root; nesse caso, o sistema pede a nova senha diretamente, sem solicitar a antiga.

Bem antigamente, as senhas eram salvas no próprio arquivo “/etc/passwd”, juntamente com as demais informações da conta, o que abria brecha para diversos tipos de ataques. A partir de um certo ponto (por volta de 1996), todas as distribuições passaram a utilizar o sistema shadow, onde as senhas são armazenadas de forma encriptada em um arquivo separado, o “/etc/shadow”.

As senhas são encriptadas usando um algoritmo de mão única, que permite apenas encriptá-las, mas não recuperá-las. Durante o login, o sistema aplica o mesmo algoritmo à senha digitada pelo usuário e compara a string resultante com a armazenada no arquivo. Se o resultado for o mesmo, o sistema sabe que a senha confere e o acesso é autorizado.

Continuando, para remover um usuário anteriormente criado, utilize o comando “deluser“, como em:

# deluser joao

Por questão de segurança, o comando remove apenas a conta, sem apagar o diretório home ou outras pastas com dados do usuário. O diretório home é especialmente importante, pois ele guarda todas as configurações e os arquivos do usuário, de forma que você só deve removê-lo depois de ter realmente certeza do que está fazendo.

Concluindo, você pode alterar as permissões de acesso de arquivos e pastas usando o comando chmod. A sintaxe dele parece um pouco complicada à primeira vista (justamente por isso a maioria acaba preferindo usar diretamente o gerenciador de arquivos), mas nada que um pouco de prática não possa resolver.

Um exemplo típico seria:

# chmod 744 arquivo

Os três números indicam, respectivamente, as permissões para o dono do arquivo, para o grupo e para os demais usuários.

Temos três permissões: leitura, gravação e execução. Cada uma é representada por um número:

4: Ler.
2: Alterar o conteúdo, criar novos arquivos (no caso de uma pasta).
1: Execução (no caso dos arquivos) ou listar os arquivos (no caso das pastas).

Você simplesmente soma estes números para ter o número referente ao conjunto de permissões que deseja:

0: Sem permissão alguma. Se for uma pasta, o usuário sequer pode ver o conteúdo.
1: Permissão apenas para executar (não é possível ler o arquivo ou alterá-lo, apenas executar um programa). No caso de uma pasta, o “1” permite que se liste os arquivos dentro dela, mas sem ler ou alterar os arquivos.
4: Apenas leitura.
5 (4+1): Ler e executar (no caso de um arquivo) ou ver os arquivos e abri-los, no caso de uma pasta.
6 (4+2): Leitura + gravação.
7 (4+2+1): Controle total: leitura + gravação + permissão para executar.

Uma observação importante é que, ao configurar as permissões de acesso de uma pasta, você sempre deve usar 5 (4+1) ou 7 (4+2+1), pois, sem permissão para listar o conteúdo da pasta, você não consegue ver os arquivos dentro dela.

Se você quisesse dar controle total do arquivo ou pasta para o dono e para o grupo, mas permissão de apenas leitura para os demais usuários, usaria o número 774; se você quisesse que todos os usuários tivessem permissão de leitura e gravação, mas sem poder executar nada, usaria o número 666; se quisesse dar controle total para todo mundo, usaria 777 e assim por diante.

Outra configuração que não deve ser subestimada é a dos privilégios de usuário, que fica disponível dentro das propriedades da conta, no “users-admin”:

Como você pode ver, ela inclui opções para usar diversos componentes do sistema, incluindo o uso da placa de som, compartilhamento de arquivos e assim por diante. Estas permissões são na verdade definidas de uma maneira bastante simples, através de grupos. Quando você marca a permissão para usar dispositivos de áudio, por exemplo, tudo o que o users-admin faz é adicionar o usuário ao grupo correspondente.

No caso do Ubuntu, está disponível também a opção “Administrar o sistema”, que adiciona o usuário ao grupo “admin”, permitindo que ele use o sudo e altere as configurações do sistema. Por default, o único administrador é o usuário criado durante a instalação, mas você pode criar outros.

Sempre que você adiciona um novo login de usuário e, ao logar com ele, não consegue ouvir sons, usar a impressora ou outros recursos do sistema, verifique antes de mais nada se as opções correspondentes estão marcadas dentro da aba de privilégios do usuário.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X