4Jul

Como as permissões de arquivo do Linux funcionam?

Se você estiver usando o Linux há algum tempo( e até mesmo o OS X), você provavelmente se encontrou com um erro de "permissões".Mas quais são exatamente eles e por que eles são necessários ou úteis? Vamos dar uma olhada no interior. Permissões de usuário

De volta ao dia, os computadores eram máquinas enormes que eram incrivelmente caras. Para tirar o máximo proveito deles, vários terminais de computadores foram conectados, o que permitiu que muitos usuários vejassem seus negócios simultaneamente. O processamento e o armazenamento de dados foram feitos na máquina, enquanto os próprios terminais eram pouco mais do que meios de visualização e entrada de dados. Se você pensa sobre isso, é praticamente como acessamos dados na "nuvem";Olhe para o sistema Cloud MP3 da Amazon, o Gmail e o Dropbox, e você notará que, embora as mudanças possam ser feitas localmente, tudo é armazenado remotamente.

( Imagem: Zenith Z-19 terminal "mudo"; 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 eles precisam ser autorizados a executar comandos e programas. Todo mundo obtém "permissões de usuário específicas", que dita o que podem e não podem fazer, onde no sistema eles fazem e não têm acesso, e cujos arquivos eles podem e não podem modificar. Cada usuário também é colocado em vários grupos, que concedem ou restringem o acesso adicional.

File Access

Neste mundo multiusuário maluco, já estabelecemos limites sobre o que os usuários podem fazer. Mas e o que eles acessam? Bem, cada arquivo possui um conjunto de permissões e um proprietário. A designação do proprietário, tipicamente 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 "Ler" permite que um visualize o conteúdo de um arquivo, o acesso "gravar" permite que um modifique 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 em 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 vejam diretórios e arquivos em sua pasta inicial, mas não ninguém fora do seu grupo. Você provavelmente quer limitar o acesso "gravar" apenas a você mesmo, a menos que você esteja trabalhando em um projeto compartilhado de algum tipo. Você também pode criar um diretório compartilhado que permite a qualquer pessoa visualizar e modificar arquivos nessa pasta.

Alterando Permissões no Ubuntu

GUI

Para alterar as permissões de um arquivo que possui no Ubuntu, basta clicar com o botão direito do mouse no arquivo e ir para "Propriedades".

Você pode mudar se o Proprietário, o Grupo ou Outros podem ler e escrever,apenas leia ou não faça nada. Você também pode verificar uma caixa para permitir a execução do arquivo, e isso permitirá que ele seja o proprietário, o grupo e outros simultaneamente.

Command-Line

Você também pode fazer isso através da linha de comando. Vá para um diretório que tenha arquivos nele 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 possui. Parece assim:

-rwxrw-r-

O r significa "ler", o w significa "escrever" e o x significa "executar". Os diretórios começarão com um "d "em vez de um" - ".Você também notará que há 10 espaços que possuem valor. Você pode ignorar o primeiro e, em seguida, 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, vejamos a forma básica do comando chmod.

chmod [classe] [operador] [permissão] arquivo

chmod [ugoa] [+ ou -] [rwx] arquivo

Isso pode parecer complicado no início, mas confie em mim, é muito fácil. Primeiro, vejamos as aulas:

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

Em seguida, os operadores:

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

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

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

Agora, vamos juntar. Digamos que temos um arquivo chamado "todo.txt" que possui 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 possui permissões completas 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

Então, removeremos a permissão de gravação para o grupo.

chmod g-w todo.txt

Finalmente, removeremos as permissões de leitura para todos os outros usuários.

chmod o-r todo.txt

Também podemos combiná-los em um 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.

Aqui estão algumas permissões úteis:

  • -rwxr-xr-x: O proprietário possui permissões completas, grupo e outros usuários podem ler o conteúdo do arquivo e executar.
  • -rwxr-r-: O proprietário tem permissões completas, grupo e outros usuários só podem ler o arquivo( útil se você não se importar com os outros que visualizam seus arquivos.
  • -rwx--: O proprietário possui permissões completas, todos os outros não têm nenhum( útilpara scripts pessoais)
  • -rw-rw--: Proprietário e grupo podem ler e escrever( útil para colaboração com membros do grupo).
  • -rw-r-r-: O proprietário pode ler e escrever, agrupar e outros usuários apenasarquivo de leitura( útil para armazenar arquivos pessoais em uma rede compartilhada).
  • -rw ---: O proprietário pode ler e escrever, todos os outros não têm nenhum( útil para armazenar arquivos pessoais).

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

A raiz ou Super-usuário e arquivos de sistema

Hoje em dia, nem sempre executamos sistemas quetem vários usuários. Por que ainda devemos nos preocupar com permissões?

Bem, Unix eseus 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 integrantes para o sistema precisam de privilégios de administrador para serem alterados ou acessados. Desta forma, você não arruina nada acidentalmente.

No Ubuntu, para fazer alterações nos arquivos do sistema, você usa "sudo" ou "gksudo" para obter o equivalente aos privilégios de Administrador. Em outras distros, você muda para "root" ou o "super-usuário", o que efetivamente faz o mesmo até você sair.

Tenha em atenção que, em ambas as circunstâncias, a alteração das permissões de arquivos pode levar a que os programas não funcionem, alterando a propriedade do arquivo inadvertidamente para o usuário raiz( em vez do proprietário) e tornando o sistema menos seguro( concedendo mais permissões).Como tal, recomenda-se que você não altere as permissões para arquivos - especialmente arquivos de sistema - a menos que seja necessário ou você sabe o que está fazendo.

As permissões de arquivos 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 os arquivos "públicos" e dar uma pista sobre quando algo dá certo com a propriedade do arquivo do sistema.

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