Como controlar permissões de arquivos e pastas em servidores Linux

Quando temos um servidor NAS baseado em Linux, ou diretamente um sistema operacional como o Debian ou Ubuntu onde instalamos diferentes serviços para acessar arquivos e pastas na rede local por outros usuários, controlar ler, escrever e executar o acesso a eles. arquivos e pastas que compartilhamos é essencial. Devemos ter em mente que, ao compartilhar nossas pastas e arquivos via Samba ou FTP, é possível que a autenticação dos clientes seja com um usuário sem privilégios, portanto, devemos organizar corretamente os usuários e grupos para fornecer as permissões necessárias e não mais .

Devemos também ter em mente que os sistemas operacionais são multiusuários, podemos acessar simultaneamente com vários usuários cadastrados localmente em nosso sistema operacional, portanto, é muito importante realizar uma revisão periódica das permissões existentes. Muitas vezes queremos impedir que outros usuários do computador modifiquem os arquivos, mas não sabemos como fazê-lo. Nesta ocasião, vamos ensiná-lo a atribuir permissões a pastas e arquivos no Linux.

Controle de permissões de arquivos e pastas em servidores Linux

Para deixar tudo muito mais claro, vamos dividir este artigo em várias seções que nos permitirão entender melhor o que está sendo falado o tempo todo. É necessário esclarecer que tudo o que explicaremos será através da linha de comando, ou seja, teremos que retirar um console ou conectar via SSH ao nosso servidor Linux. Se você não está familiarizado com este componente Linux, talvez seja o melhor momento, pois o nível de dificuldade que vamos falar é baixo.

O que é o comando chmod e para que serve?

O comando chmod (modo de mudança) se destina a alterar o usuário, grupo e outras permissões para os arquivos e pastas, podemos alterar as permissões de leitura, gravação e execução de todos os arquivos e pastas que desejamos, além disso, podemos fazer a Modificação recursiva de uma determinada pasta, desta forma, todos os arquivos e pastas dentro dela também serão afetados por esta mudança. O comando chmod está disponível em sistemas operacionais Linux e Unix, portanto, se nosso servidor for baseado em Unix como um FreeBSD, podemos alterar as permissões de arquivos e pastas da mesma forma que fazemos em um Debian ou Ubuntu.

A sintaxe para usar chmod é a seguinte:

chmod [modificadores] permissões de arquivo / diretório

Primeiro executaremos o comando chmod, depois poderemos incorporar diferentes modificadores, por exemplo, o “-R” para torná-lo recursivo a todas as pastas e arquivos dentro da mesma pasta, então teremos que colocar as novas permissões que queremos aplicar e, finalmente, vamos colocar o caminho absoluto ou relativo do arquivo ou pasta que queremos modificar as permissões.

Um detalhe muito importante é que em alguns casos é absolutamente necessário executar chmod com permissões de superusuário, já que apenas o usuário administrador do sistema operacional pode alterar as permissões. Isso pode ser obtido fazendo login como root ou usando diretamente o popular comando “sudo” para promover temporariamente o superusuário com o comando para executar.

Exemplos de uso de chmod para alterar permissões

A primeira coisa que vamos fazer é criar uma nova pasta e arquivos dentro dela, a fim de que você pratique com essas pastas e arquivos, e não modifique as permissões padrão das pastas que já existem em seu sistema operacional. Por isso, vamos nos preparar para que os testes sejam um sucesso.

Antes de começar, todos os comandos que você vai executar serão feitos com diferentes usuários, para verificar corretamente as permissões que vamos aplicar. Para mudar de um usuário para outro em sistemas Linux, basta abrir o console e executar ” seu nome de usuário “, Entramos com a senha e vamos acessar automaticamente o terminal como se fôssemos o outro usuário.

Preparando nosso sistema para teste

A primeira coisa que vamos fazer é crie uma pasta no diretório atual de cada usuário , geralmente localizado em / home / nome de usuário.

mkdir Carpetathis article

Posteriormente, iremos para esta pasta e criaremos um arquivo:

cd Carpetathis article

toque no arquivo de teste

Para finalizar, escreveremos o seguinte comando para subir de nível e sair da pasta que criamos:

cd ..

Com isso, temos nosso sistema pronto para começar a testar as alterações de permissão.

Obtenha informações sobre arquivos e pastas

Se quisermos listar os arquivos existentes em uma pasta, teremos apenas que escrever o seguinte comando:

ls

Com isso obtemos apenas o nome dos arquivos ou pastas em que estamos no caminho. Para obter mais detalhes, teremos que escrever o seguinte:

ls -l

Executamos este comando em nosso servidor, aqui você pode ver como fica a saída:

Este comando fornece as seguintes informações (da esquerda para a direita):

  • Tipo de arquivo (o arquivo mostra “-” e o diretório mostra um “d”).
  • Ler, escrever e executar permissões, tanto para usuário, grupo e outros.
  • Usuário proprietário.
  • Grupo que possui o arquivo.
  • Tamanho
  • Data da última modificação.
  • Nome

Depois de criar a pasta e os arquivos, bem como ver a saída do comando «ls -l», vamos interpretar as permissões que os arquivos ou pastas têm.

Interprete as permissões de um arquivo ou pasta

Você já viu que os diferentes arquivos têm estas permissões:

drwxr-xr-x 3 bron bron 4096 may 6 13:19 Descargas

Nesta string oferecida, veremos que, para cada arquivo ou pasta, há uma série de letras em primeiro lugar. Estas são as permissões que o arquivo possui e são lidas da seguinte forma:

otorgar-permisos-fichero-o-carpeta-linux

No exemplo anterior, temos as permissões “drwxr-xr-x”, o que significa o seguinte:

  • d: diretório
  • rwx: permissões de leitura, gravação e execução para o usuário que possui o diretório.
  • rx: permissões de leitura e execução para o grupo que possui o diretório.
  • rx: ler e executar permissões para outros no diretório.

Se quisermos que apenas o usuário proprietário possa ler, escrever e executar um determinado arquivo, teríamos que ver o seguinte:

-rwx------

Ou seja, podemos conceder permissões para as seguintes funções:

  • Usuário proprietário.
  • Grupo ao qual o proprietário pertence
  • Resto dos usuários da equipe.

Como alterar as permissões de arquivos e pastas

O comando que devemos usar para realizar esta tarefa é chmod, esta será a ferramenta com a qual podemos adicionar ou remover permissões, tanto para um arquivo como para uma pasta existente no sistema de arquivos de nosso sistema operacional. Para fazer essa configuração com chmod, podemos fazer de duas maneiras diferentes, usando letras mais “humanas”, porém mais longas, e também números em formato “octal”, que é muito mais rápido. Esta última forma é a nossa preferida devido à sua rapidez, embora seja possível que no início goste mais de usar letras, porque é muito mais bem compreendida.

Cartas

Se vamos usar letras para adicionar ou remover permissões de uma pasta ou arquivo, devemos levar em consideração as funções, símbolos e permissões.

Existem três tipos de funções:

  • u: usuário
  • g: grupo
  • ou: outros
  • a: todos (todos), se você precisar aplicar a mesma permissão para usuários, grupos e outros, use “a” para economizar tempo.

Dois tipos de símbolos:

  • +: adicionar permissões
  • -: remove permissões
  • =: especifica o conjunto de permissões.

Três tipos de licenças:

  • r: lendo
  • w: escrevendo
  • x: execução

A seguir, oferecemos uma série de exemplos para que você possa ver do que estamos falando:

Conceda permissões completas de leitura, gravação e execução para todas as funções, tanto de usuário, grupo e outras:

chmod ugo+rwx archivoDePrueba

Remova as permissões de leitura, gravação e execução de outros usuários:

chmod o-rwx archivoDePrueba

No final das contas, tudo está em combinar as funções, símbolos e permissões dependendo da necessidade que temos.

Com base em octal usando números

A chmod O comando também é compatível com outra nomenclatura que vamos ensinar a você e que é baseada em octal.

Imagine que as permissões do proprietário (rwx) são identificadas por 0 e 1. Ou seja, se, por exemplo, quisermos dar apenas permissões de leitura e gravação (e não permissões de execução), seria: 110. Se quisermos apenas permissão de leitura, seria ser: 100.

Portanto, levando em consideração todas as possibilidades existentes, obtemos os seguintes valores:

  • 0: 0
  • 0: 0
  • 0: 1
  • 0: 1
  • 1: 0
  • 1: 0
  • 1: 1
  • 1: 1

Ou seja, isso é algo que pode ser extrapolado para o usuário, grupo e outros.

O formato do comando seria o seguinte:

chmod xxx archivoDePrueba

Onde os xs serão alterados para um número dependendo das permissões atribuídas.

Por exemplo, se quisermos dar ao proprietário permissões totais e deixar as outras duas funções (grupo e outras) sem qualquer permissão, o comando seria:

chmod 700 archivoDePrueba

Se quisermos dar permissões de leitura e gravação a todas as funções, será:

chmod 666 archivoDePrueba

Com essas duas maneiras simples, podemos definir as permissões de arquivo e pasta em nosso computador Linux. Além disso, teremos o comando ls -l ao nosso alcance para obter informações em tempo real sobre os arquivos e pastas do sistema. Recomendamos que você visite o manual chmod oficial para Linux, para isso, executaremos o seguinte no console:

man chmod

Também recomendamos investigar os comandos getfacl e setfacl para configurar listas de controle de acesso mais avançadas no Linux, e não apenas usar usuários, grupos e outros, isso nos permitirá uma maior granularidade, embora seja claramente muito mais avançado do que o popular chmod. Em geral, se você faz uma boa organização de usuários e grupos, não deve precisar usar essas listas de controle de acesso.