Permissões de arquivos e diretórios do Linux explicadas

Linux é um sistema operacional multiusuário, portanto, vários usuários podem interagir com o mesmo computador ao mesmo tempo usando Linux. Por ser um sistema operacional multiusuário, é importante para o Linux garantir a segurança e a privacidade dos arquivos pertencentes aos diferentes usuários.

Para conseguir isso, o Linux possui um sistema elaborado para lidar com permissões de arquivos e diretórios. Dessa forma, os usuários do Linux podem controlar o acesso aos arquivos por diferentes usuários e quais ações os usuários podem realizar ao usar o computador.

Como usuário Linux, é crucial entender como o Linux lida com permissões de arquivos e diretórios e como você pode trabalhar com as diferentes permissões disponíveis para proteger seus arquivos e garantir a funcionalidade do seu computador. Para entender como o Linux gerencia permissões de arquivos e diretórios, vamos primeiro examinar as diferentes categorias de usuários em um sistema operacional Linux.

Categoria de usuários no Linux

A primeira categoria de usuários são proprietários de um arquivo ou diretório. Cada arquivo ou diretório no Linux possui um proprietário. Geralmente, esse proprietário recebe mais permissões para seu arquivo ou diretório. O proprietário de um arquivo geralmente é indicado pela letra u de usuário.

No Linux, vários usuários podem ser colocados em um grupo e receber permissões para arquivos como um grupo. Estes são conhecidos como proprietários de grupos e são representados pela letra g.

Por exemplo, se você tiver um arquivo com recomendações de livros e quiser conceder a vários usuários permissões semelhantes ao arquivo, uma maneira fácil de fazer isso é colocar os usuários em um grupo e conceder permissões ao grupo como um todo.

A outra categoria de usuários é conhecida como outros e é representada pela letra o. Esses são usuários que não possuem o arquivo e também não fazem parte de um grupo com permissões para o arquivo. Outro representa todos os outros no sistema.

Todos os usuários em um computador, ou seja, proprietários de arquivos, usuários em grupos e outros usuários podem especificar usando a letra a.

Crie e adicione um novo usuário no Ubuntu Linux

Vejamos como você pode criar e adicionar um novo usuário no Ubuntu Linux. Para acompanhar este tutorial, crie também um novo usuário.

1. Abra Configurações e na barra de menu esquerda, clique em Usuário e depois clique em Desbloquear e forneça sua senha quando solicitado. Você precisa clicar em Desbloquear para poder adicionar um novo usuário. Por padrão, esta funcionalidade está bloqueada.

2. Uma vez desbloqueado, você verá uma opção Adicionar usuário, clique nela para adicionar um novo usuário

3. Para criar um novo usuário, forneça seu nome completo e nome de usuário, selecione Definir uma senha agora e defina sua senha. Além disso, certifique-se de que o tipo de conta esteja definido como Administrador e clique em Adicionar para adicionar um usuário.

4. Você deverá ver uma nova conta de usuário que acabou de criar, conforme mostrado abaixo.

  Como configurar um servidor uTorrent no Linux

Permissões de arquivos e diretórios do Linux

As permissões referem-se às regras que regem o acesso a arquivos e diretórios e às ações que podem ser executadas neles por diferentes usuários. O Linux tem três categorias principais de permissão:

  • Read(r) – permite que um usuário visualize o conteúdo de um arquivo e liste o conteúdo de um diretório
  • Write(w) – permite que um usuário modifique o conteúdo de um arquivo. Com diretórios, as permissões de gravação permitem que um usuário modifique o conteúdo de um diretório, criando, excluindo, renomeando ou movendo arquivos e subdiretórios no diretório. No entanto, as permissões de gravação com diretórios só funcionam se o usuário também tiver permissões de execução.
  • Execute(x) – Permissões de execução significam que um arquivo pode ser tratado como um programa que pode ser executado. Com diretórios, a permissão de execução permite que um usuário entre ou ‘cd’ no diretório.
  • As permissões de leitura, gravação e execução são atribuídas às três categorias de usuários disponíveis no Linux.

    Você também pode ler como remover arquivos e diretórios no Linux

    Listagem longa no Linux

    Para visualizar o conteúdo de um arquivo em um diretório Linux, normalmente executamos o comando ls. No entanto, isto lista apenas os arquivos e diretórios disponíveis e não fornece nenhuma informação adicional.

    Para visualizar mais informações sobre o conteúdo você precisa usar o formato de listagem longa. Para fazer isso, execute o comando ls com o sinalizador -l. Isso lhe dará as permissões de arquivo, os proprietários de um arquivo e os proprietários de grupo de um arquivo, conforme mostrado abaixo:

    No Ubuntu, por padrão, se nenhum grupo foi criado, o nome do grupo é igual ao do proprietário do arquivo.

    Para criar um grupo, usamos o comando addgroup. Para adicionar um grupo chamado editores, execute o seguinte comando e forneça uma senha quando solicitado

    sudo addgroup editors

    sudo nos permite executar comandos como usuário root, que é um superusuário com privilégios para executar alterações que afetam todos os usuários do computador.

    Para adicionar usuários a um grupo usamos a seguinte sintaxe:

    adduser <user> <group>

    Portanto, para adicionar belmont e madici ao grupo de editores, executamos

    sudo adduser belmont editors
    sudo adduser madici editors

    Para ver os grupos aos quais um usuário pertence, execute:

    groups <username>

    O resultado dos comandos acima é mostrado abaixo:

    Vejamos agora os atributos do arquivo, que nos informam sobre os tipos de arquivo e as permissões no arquivo. a.

    Atributos de arquivo no Linux

    No Linux, os atributos de arquivo consistem em exatamente dez caracteres. O primeiro caractere indica o tipo de arquivo. Alguns dos primeiros caracteres comuns que representam arquivos diferentes incluem:

    • d indica um diretório
    • – indica um arquivo normal, por exemplo, arquivos de texto
    • c indica um arquivo especial de caractere
    • l indica um link simbólico
    • b indica um arquivo especial de bloco

    Os nove caracteres restantes são usados ​​para mostrar as permissões do proprietário, proprietário do grupo e outros usuários. Os nove personagens são divididos em grupos de três. O primeiro grupo indica as permissões do proprietário, o segundo grupo indica as permissões do proprietário do grupo e os três últimos indicam permissões para outros, ou seja, todos os outros usuários do computador.

    As permissões para cada categoria são indicadas começando pela permissão de leitura, depois gravação e, finalmente, a permissão de execução. A permissão de leitura é indicada pela letra r, a permissão de gravação pela letra w e a permissão de execução pela letra x.

      Como criar um ambiente de desktop com o gerenciador de janelas Openbox no Linux

    O símbolo – é usado caso um usuário não tenha uma permissão específica. Por exemplo, rw- para o proprietário do grupo significa que ele tem permissões de leitura e gravação, mas não tem permissão de execução nesse diretório (d).

    Alterando permissões de arquivo usando notação simbólica

    Para alterar as permissões em um arquivo ou diretório, usamos o comando chmod e especificamos para quem estamos alterando as permissões.

    Pode ser o proprietário do arquivo representado pela letra u para o usuário, o proprietário do grupo representado pela letra g ou outros usuários representados pela letra o. Também podemos atingir todas as três categorias de usuários usando a letra a, que significa todas as opções acima.

    A próxima coisa que especificamos é a mudança que estamos fazendo. Para adicionar uma permissão usamos +(sinal de mais). Para remover uma permissão usamos – (sinal de menos). A última coisa que fornecemos são as permissões que adicionamos usando r,w ou x para representar as três permissões disponíveis.

    Para ver isso em ação, crie um diretório chamado books usando o comando abaixo

    mkdir books

    Digite ou ‘cd’ no diretório:

    cd books

    Crie um arquivo chamado readingList.txt

    touch readingList.txt

    Liste longamente o conteúdo do diretório de livros executando:

    ls -l

    A saída é conforme mostrado:

    O arquivo que criamos é um arquivo normal, indicado primeiro –, o proprietário e o proprietário do grupo têm permissões de leitura e gravação, enquanto outros usuários têm apenas permissão de leitura. Para conceder permissão a outros usuários para gravar no arquivo, executaríamos o seguinte comando:

    chmod o+w readingList.txt

    Para ver se as permissões de outros usuários foram alteradas, execute

    ls -l

    Saída:

    Observe que a permissão de arquivo de outros usuários mudou de r– para rw- o que significa que eles agora têm permissão de gravação.

    Para adicionar permissões de execução ao proprietário (usuário) do arquivo, execute:

    chmod u+x readingList.txt

    Para remover permissões de gravação dos proprietários do grupo, execute:

    chmod g-w readingList.txt

    Para remover as permissões de leitura de todos os usuários para que ninguém possa visualizar o arquivo, execute:

    chmod a-r readingList.txt

    Para adicionar permissão de leitura reversa para o proprietário do arquivo, execute:

    chmod u+r readingList.txt

    Para adicionar permissões de gravação e execução ao proprietário do grupo do arquivo, execute:

    chomod g+wx readingList.txt

    Alterando permissões usando a notação octal

    No Linux, cada uma das três permissões disponíveis possui apenas dois valores possíveis. A permissão de leitura só pode ser r ou –, a permissão de gravação só pode ser w ou – e a permissão de execução só pode ser x ou –.

    Portanto, essas permissões podem ser consideradas ativadas ou desativadas e, portanto, representadas por meio de números binários, que possuem apenas dois valores disponíveis. Isso é 1 para ativado ou verdadeiro e 0 para desativado ou falso. Lá, uma permissão como rw– pode ser representada como 110 usando números binários.

    Portanto, para qualquer categoria de usuário, três números binários são suficientes para apresentar todas as suas permissões. Por exemplo, a permissão para o proprietário, grupo e outros rwxrw-r– pode ser representada como 111110100 usando um número binário.

      Como instalar o tema do ícone Moka no Linux

    Porém, para evitar escrever números binários, que são longos e facilmente confusos, uma alternativa melhor é usar números octais.

    Os números octais têm base 8 e, portanto, possuem apenas 8 valores possíveis. Cada número octal é mapeado para exatamente três dígitos binários.

    Portanto, uma permissão como rw- pode ser representada como 110 em binário. O equivalente octal de 110 é 6 e, portanto, 6 pode ser usado para representar rw-. Os números octais podem ser usados ​​para representar as permissões de leitura, gravação e execução do proprietário, grupo e outros, conforme mostrado abaixo:

    Em vez de escrever dígitos binários longos, é melhor representar as permissões usando números octais. Portanto, todas as permissões do proprietário, grupo e outros são representadas usando números octais únicos, conforme mostrado no diagrama acima.

    A vantagem de usar a notação octal para definir permissões é que ela permite definir a permissão para todos os usuários de uma vez, ao contrário da notação simbólica, onde você só pode definir a permissão de um único usuário por vez.

    No entanto, usar a notação octal leva algum tempo e prática para ser capaz de lembrar o que cada número octal resolve. Dito isto, sinta-se à vontade para consultar o diagrama acima sempre que usar a notação octal. Vejamos vários exemplos de alteração de permissões usando a notação octal

    Para conceder a todos os usuários, ou seja, o proprietário, o proprietário do grupo e outros usuários, permissão de leitura, gravação e execução para readingList.txt, execute:

    chmod 777 readingList.txt

    Para verificar se as permissões foram alteradas, execute:

    ls -l

    Saída:

    total 0
    -rwxrwxrwx 1 madici madici 0 Sep  6 05:45 readingList.txt

    Observe que agora o proprietário, o grupo e outros usuários têm permissão para ler, gravar e executar readingList.txt.

    Para remover permissões de gravação do proprietário do grupo e de outras pessoas, execute:

    chmod 755 readingList.txt

    Para remover a permissão de execução do proprietário e de outros, execute:

    chmod 654 readingList.txt

    Permissões especiais no Linux

    O Linux possui três permissões especiais que podem ser aplicadas a arquivos e diretórios, além das permissões padrão de leitura, gravação e execução. Essas permissões fornecem funcionalidade avançada para controle de acesso e permitem que usuários com menos privilégios executem arquivos e comandos com privilégios mais altos, assim como o proprietário do arquivo ou o proprietário do grupo.

    As permissões especiais incluem:

    • Definir ID do usuário (SUID) – a permissão SUID permite que um usuário execute um arquivo ou programa com os privilégios do proprietário, e não os do usuário que o executa. Isto é útil quando usuários padrão precisam executar tarefas que exigem privilégios elevados.
    • Definir ID do grupo (SGID) – a permissão SGID permite que um usuário execute um arquivo com as permissões do proprietário do grupo do arquivo, em vez das permissões de seu grupo real.
    • Sticky Bit – O sticky bit é uma permissão geralmente definida para diretórios para garantir que os arquivos no diretório só possam ser excluídos pelo proprietário real do diretório, pelo proprietário desse arquivo específico ou pelo usuário root.

    As três permissões especiais podem ser usadas junto com as permissões padrão: leitura, gravação e execução.

    Conclusão

    As permissões são um conceito importante no Linux, mesmo que o seu computador não tenha vários usuários. Compreender a permissão é importante para garantir o controle, a segurança e a privacidade dos dados armazenados em um sistema Linux e sua funcionalidade. Portanto, considere familiarizar-se com as permissões praticando o que aprendeu sobre permissões neste artigo.

    Você também pode explorar como usar comandos do Linux no Windows.