Como funcionam as permissões de arquivos do Linux?

Índice:

Como funcionam as permissões de arquivos do Linux?
Como funcionam as permissões de arquivos do Linux?

Vídeo: Como funcionam as permissões de arquivos do Linux?

Vídeo: Como funcionam as permissões de arquivos do Linux?
Vídeo: Virtualização, KVM e tipos de Hypervisors (Virtualbox, VMWare, MS Hyper-V) - YouTube 2024, Abril
Anonim
Se você usa o Linux há algum tempo (e até mesmo o OS X), provavelmente terá encontrado um erro de "permissões". Mas o que exatamente eles são, e por que eles são necessários ou úteis? Vamos dar uma olhada dentro.
Se você usa o Linux há algum tempo (e até mesmo o OS X), provavelmente terá encontrado um erro de "permissões". Mas o que exatamente eles são, e por que eles são necessários ou úteis? Vamos dar uma olhada dentro.

Permissões do usuário

Naquela época, os computadores eram máquinas enormes que eram incrivelmente caras. Para tirar o máximo proveito deles, vários terminais de computador foram conectados, o que permitiu que muitos usuários realizassem seus negócios simultaneamente. O processamento e o armazenamento de dados eram feitos na máquina, enquanto os próprios terminais eram pouco mais que um meio de visualizar e inserir dados. Se você pensar bem, é como nós acessamos dados na "nuvem"; Veja o sistema Cloud MP3 da Amazon, o Gmail e o Dropbox, e você perceberá que, embora as alterações possam ser feitas localmente, tudo é armazenado remotamente.

(Imagem: Zenith Z-19 terminal "burro"; crédito: ajmexico)
(Imagem: Zenith Z-19 terminal "burro"; crédito: ajmexico)

Para que isso funcione, os usuários individuais precisam ter contas. Eles precisam ter uma seção da área de armazenamento atribuída a eles, e precisam ter permissão para executar comandos e programas. Todos recebem "permissões de usuário" específicas, que ditam o que podem e o que não podem fazer, onde, no sistema, eles têm acesso e não têm acesso e cujos arquivos podem e não podem ser modificados. Cada usuário também é colocado em vários grupos, que concedem ou restringem acesso adicional.

Acesso a arquivos

Nesse mundo mal-intencionado de vários usuários, já estabelecemos limites sobre o que os usuários podem fazer. Mas e o que eles acessam? Bem, todo arquivo tem um conjunto de permissões e um proprietário. A designação do proprietário, normalmente vinculada quando o arquivo é criado, declara a qual usuário pertence e somente esse usuário pode alterar suas permissões de acesso.
Nesse mundo mal-intencionado de vários usuários, já estabelecemos limites sobre o que os usuários podem fazer. Mas e o que eles acessam? Bem, todo arquivo tem um conjunto de permissões e um proprietário. A designação do proprietário, normalmente vinculada quando o arquivo é criado, declara a qual usuário pertence e somente esse usuário pode alterar suas permissões de acesso.

No mundo do Linux, as permissões são divididas em três categorias: ler, escrever e executar. O acesso de "leitura" permite ver o conteúdo de um arquivo, o acesso de "gravação" permite modificar o conteúdo de um arquivo e "executar" permite que um execute um conjunto de instruções, como um script ou um programa. Cada uma dessas categorias é aplicada a diferentes classes: usuário, grupo e mundo. "Usuário" significa o proprietário, "grupo" significa qualquer usuário que esteja no mesmo grupo que o proprietário e "mundo" significa qualquer pessoa e todos.

As pastas também podem ser restritas com essas permissões. Você pode, por exemplo, permitir que outras pessoas do seu grupo visualizem diretórios e arquivos em sua pasta pessoal, mas não qualquer pessoa fora do seu grupo. Você provavelmente desejará limitar o acesso de "gravação" somente a você mesmo, a menos que esteja trabalhando em algum tipo de projeto compartilhado. Você também pode criar um diretório compartilhado que permita a qualquer pessoa visualizar e modificar arquivos nessa pasta.
As pastas também podem ser restritas com essas permissões. Você pode, por exemplo, permitir que outras pessoas do seu grupo visualizem diretórios e arquivos em sua pasta pessoal, mas não qualquer pessoa fora do seu grupo. Você provavelmente desejará limitar o acesso de "gravação" somente a você mesmo, a menos que esteja trabalhando em algum tipo de projeto compartilhado. Você também pode criar um diretório compartilhado que permita a qualquer pessoa visualizar e modificar arquivos nessa pasta.

Alterando Permissões no Ubuntu

GUI

Para alterar as permissões de um arquivo que você possui no Ubuntu, clique com o botão direito do mouse no arquivo e vá para "Propriedades".

Você pode alterar se o proprietário, grupo ou outros podem ler e escrever, somente leitura ou não fazer nada. Você também pode marcar uma caixa para permitir a execução do arquivo, e isso irá habilitá-lo para o Proprietário, Grupo e Outros simultaneamente.
Você pode alterar se o proprietário, grupo ou outros podem ler e escrever, somente leitura ou não fazer nada. Você também pode marcar uma caixa para permitir a execução do arquivo, e isso irá habilitá-lo para o Proprietário, Grupo e Outros simultaneamente.

Linha de comando

Você também pode fazer isso através da linha de comando. Vá para um diretório que contenha arquivos e digite o seguinte comando para visualizar todos os arquivos em uma lista:

ls -al

Ao lado de cada arquivo e diretório, você verá uma seção especial que descreve as permissões que ele possui. Se parece com isso:
Ao lado de cada arquivo e diretório, você verá uma seção especial que descreve as permissões que ele possui. Se parece com isso:

-rwxrw-r–

o r significa "ler", o W significa "escrever" e x significa "executar". Os diretórios serão iniciados com um "d" em vez de um "-". Você também notará que há 10 espaços que mantêm o valor. Você pode ignorar o primeiro, e então há 3 conjuntos de 3. O primeiro conjunto é para o proprietário, o segundo conjunto é para o grupo e o último conjunto é para o mundo.

Para alterar as permissões de um arquivo ou diretório, vamos ver a forma básica do comando chmod.

chmod [class][operator][permission] file

chmod [ugoa][+ or –] [rwx] file

Isso pode parecer complicado no começo, mas acredite, é bem fácil. Primeiro, vamos ver as classes:

  • u: Isso é para o dono.
  • g: Isso é para o grupo.
  • o: Isso é para todos os outros.
  • a: Isso alterará as permissões de todos os itens acima.

Em seguida, os operadores:

  • +: O sinal de mais irá adicionar as permissões que se seguem.
  • -: O sinal de menos irá remover as permissões que se seguem.

Ainda comigo? E a última seção é a mesma de quando verificamos as permissões de um arquivo:

  • r: permite acesso de leitura.
  • w: permite acesso de gravação.
  • x: permite a execução.

Agora vamos juntos. Digamos que tenhamos um arquivo chamado "todo.txt" com as seguintes permissões:

-rw-rw-r–

Ou seja, o proprietário e o grupo podem ler e escrever, e o mundo só pode ler. Queremos alterar as permissões para estas:

-rwxr-–

Ou seja, o proprietário tem permissões totais e o grupo pode ler. Podemos fazer isso em 3 etapas. Primeiro, adicionaremos a permissão de execução para o usuário.

chmod u+x todo.txt

Em seguida, removeremos a permissão de gravação do grupo.

chmod g-w todo.txt

Por fim, removeremos as permissões de leitura de todos os outros usuários.

chmod o-r todo.txt

Nós também podemos combiná-los em um único comando, assim:

chmod u+x,g-w,o-r todo.txt

Você pode ver que cada seção é separada por vírgulas e não há espaços.
Você pode ver que cada seção é separada por vírgulas e não há espaços.

Aqui estão algumas permissões úteis:

  • -rwxr-xr-x: O proprietário tem permissões totais, grupo e outros usuários podem ler o conteúdo do arquivo e executá-lo.
  • -rwxr – r–: o proprietário tem permissões totais, grupo e outros usuários só podem ler o arquivo (útil se você não se incomodar em ver seus arquivos.
  • -rwx--: O proprietário tem permissões completas, todas as outras não possuem nenhuma (útil para scripts pessoais).
  • -rw-rw-: Proprietário e grupo podem ler e escrever (útil para colaboração com membros do grupo).
  • -rw-r-r–: Proprietário pode ler e escrever, grupo e outros usuários só podem ler o arquivo (útil para armazenar arquivos pessoais em uma rede compartilhada).
  • -rw ---: O proprietário pode ler e escrever, todos os outros não possuem nenhum (útil para armazenar arquivos pessoais).

Existem algumas outras coisas que você pode fazer com o chmod - como o setuid e o setgid - mas eles são um pouco detalhados e a maioria dos usuários não precisará usá-los de qualquer maneira.

A raiz ou o superusuário e os arquivos do sistema

Atualmente, nem sempre executamos sistemas com vários usuários. Por que devemos nos preocupar com as permissões?
Atualmente, nem sempre executamos sistemas com vários usuários. Por que devemos nos preocupar com as permissões?

Bem, o Unix e seus derivados - Linux, OS X, entre outros - também distinguem entre coisas executadas pelo usuário, coisas executadas por um administrador ou com privilégios de administrador, e coisas executadas pelo próprio sistema. Como tal, as coisas que são essenciais para o sistema precisam de privilégios de administrador para serem alterados ou acessados. Dessa forma, você não estraga nada acidentalmente.

No Ubuntu, para fazer alterações nos arquivos do sistema, você usa “sudo” ou “gksudo” para obter o equivalente a privilégios de administrador. Em outras distros, você muda para “root” ou “superusuário”, o que efetivamente faz a mesma coisa até você sair.

Lembre-se de que, em ambas as circunstâncias, a alteração das permissões de arquivo pode fazer com que os programas não funcionem, alterando involuntariamente a propriedade do arquivo para o usuário raiz (em vez do proprietário) e tornando o sistema menos seguro (concedendo mais permissões). Por isso, é recomendável que você não altere as permissões de arquivos, especialmente arquivos do sistema, a menos que seja necessário ou saiba o que está fazendo.

Permissões de arquivo estão em vigor para fornecer um sistema básico de segurança entre os usuários. Aprender como eles funcionam pode ajudá-lo a configurar o compartilhamento básico em um ambiente multiusuário, proteger arquivos “públicos” e dar uma pista de quando algo está errado com a propriedade de arquivos do sistema.

Acha que pode explicar as coisas mais facilmente? Tem uma correção? Quer relembrar os velhos tempos? Faça uma pausa e coloque seus pensamentos nos comentários.

Recomendado: