Permissões do Linux para administradores e desenvolvedores de sistema

Permissões do Linux para administradores e desenvolvedores de sistema

Permissões do Linux para administradores e desenvolvedores de sistema

A questão das permissões no Linux e seu uso correto através do comando "chmod" é algo muito comumente exposto e discutido nas Comunidades SL. por usuários avançados, técnicos e administradores de servidores e sistemas. Por exemplo, em nosso Blog, temos 2 publicações muito boas sobre o assunto, que são: Permissões e direitos no Linux (01/12) y Permissões básicas em GNU / Linux com chmod (08/16).

Mas muitas vezes Desenvolvedores de SW quem são aqueles que criam os aplicativos e sistemas, a maioria deles sistemas e sites, ao desenvolvê-los, eles geralmente não consideram quais são as permissões corretas a serem implementadas neles, deixando a tarefa quase sempre do lado do servidor e dos administradores do sistema. Nesta publicação tentaremos dar uma pequena orientação sobre isso para eles.

Permissões do Linux para DevOps / BDA: introdução

Introdução

O comando "chmod»É muito útil e importante para o uso avançado de sistemas operacionais baseados em Linux. No entanto, como tal, "chmod" não é um pacote independente, mas está integrado ao pacote "coreutils«. O pacote "coreutils" é um pacote que fornece ao Sistema Operacional muitas ferramentas básicas para gerenciamento de arquivos, interpretadores de comandos e processamento de texto. E, em geral, ele já vem instalado por padrão na maioria das distros Linux.

Especificamente, este pacote contém, além do comando "chmod", os seguintes comandos: arch base64 basename cat chcon chgrp chmod chown chroot cksum comm cp csplit data de corte dd df dir dircolors dirname du echo env expandir expr factor false flock fmt dobrar grupos cabeça hostid id instalar junção link ln logname ls md5sum mkdir mkfifo mknod mktemp mv nicec noh od paste pathchk pinky pr printenv printf ptx pwd readlink realpath rm rmdir runcon sha * sum seq fragmentar sono classificar dividir stat stty soma sync tac tail tee tempo limite de teste toque tr true truncar tsort tty uname uname uniq desvincular usuários vdir wc quem quem fez sim.

Em resumo, o comando «chmod» permite a tarefa muito importante de gerenciar as permissões em arquivos e pastas para todos os usuários gerenciados pelo sistema operacional. Isso ocorre porque o Linux como sistema operacional é multiusuário e, portanto, precisa fornecer ao ambiente de trabalho um sistema de permissão para controlar o conjunto de operações autorizadas em arquivos e diretórios, que inclui todos os recursos do sistema e os dispositivos.

conteúdo

Permissões do Linux para SW / BD: Conteúdo 1

Use para desenvolvedores de SW

Um Administrador de Servidor e Sistemas (Sysadmin), ao decidir quais permissões conceder a um Usuário de nível X ou perfil no arquivo ou pasta X, precisa saber exatamente que tipo de operações ou processos eles precisam executar. No caso de um servidor Web, os usuários podem ser classificados em 2 tipos:

  1. Usuários administradores: Quem tem uma conta de usuário no servidor para fazer o login, tem privilégios específicos, e que geralmente realiza certas alterações (copiar / excluir / modificar) no Sistema ou Site instalado via SSH ou SFTP, por exemplo.
  2. Usuários não administradores: Que não possuam conta de usuário no servidor, visto que são apenas visitantes do Site e Sistema Web. E portanto, eles não têm permissão para acessar arquivos e pastas diretamente, mas sim interagir com eles, através da interface web do Site ou do Sistema Web instalado.

No entanto, quando um Sysadmin não recebe o suficiente ou adequado informações, documentação ou suporte por Desenvolvedores de SW sobre as capacidades, funcionalidades ou estrutura de arquivos dos sites e sistemas a serem instalados acaba executando o máximo confiável, que neste caso costuma ser:

chmod 777 -R /var/www/sistema-web

E muitas vezes termina com:

chown root:root -R /var/www/sistema-web

Permissões do Linux para SW / BD: Conteúdo 2

aviso

Isso geralmente é uma má prática, mas geralmente evita qualquer problema de permissão e má execução dos sites e sistemas instalados. Uma má prática, pois quando o comando chmod 777 é executado desta forma na pasta e nos arquivos de um Site ou Sistema Web, não há segurança alguma nisso.

Tornar possível para qualquer usuário do Site ou Sistema Web online alterar ou deletar qualquer arquivo dentro da estrutura de arquivos do Site ou Sistema Web dentro do Servidor Web ou além, sem maiores obstáculos. Pois é preciso lembrar que é o Web Server que atua em nome dos usuários visitantes, e que é capaz de alterar os mesmos arquivos que estão sendo executados.

E caso o usuário seja um invasor e obtenha alguma vulnerabilidade no Site ou Sistema Web, ele poderia facilmente explorá-lo para desfigurá-lo, desativá-lo, ou pior ainda, insira código malicioso para realizar ataques de phishing ou roubar informações do servidor sem que ninguém saiba facilmente.

Permissões do Linux para SW / BD: Conteúdo 3

Recomendações

Para evitar esses tipos de medidas, O administrador do sistema ou o desenvolvedor de software deve garantir que as pastas e arquivos dos vários sistemas ou sites tenham as permissões e usuários corretos e necessários para evitar problemas futuros de segurança e privacidade.

No nível de permissão, os 3 comandos a seguir podem ser executados para restaurar as permissões e usuários de um sistema ou site da Web instalado ao normal.Em outras palavras, defina o valor 755 para todos os diretórios e 644 para arquivos.

Sempre lembrando de executá-los dentro da pasta Sistema ou Site, pois se forem executados em uma pasta (diretório) superior, como, por exemplo, a raiz do servidor, os comandos de comando irão modificar recursivamente todas as permissões do Servidor, deixando-o provavelmente inoperante.

Permissões do Linux para SW / BD: Conteúdo 4

Permissões aplicadas a pastas (diretórios)

Exemplos

Permissões de diretórios e arquivos

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

y

chmod 777 -R .

o

chmod 777 -R /var/www/sistema-web

No caso de estar fora da pasta (diretório) do Sistema ou Site.

Usuários do sistema ou do site

chown www-data:www-data -R .

o

chown www-data:www-data -R /var/www/sistema-web

No caso de estar fora da pasta (diretório) do Sistema ou Site. E o usuário www-data é usado apenas como exemplo, pois é o mais usado ou apropriado no que diz respeito ao uso do Apache2.

Permissões do Linux para SW / BD: Conteúdo 5

Permissões aplicadas a arquivos (arquivos)

Uma vez que as alterações de permissões tenham sido feitas, podemos prosseguir para modificar as permissões dos diretórios e arquivos que desejamos ter diferentes permissões manualmente. E se for necessário mudar também os usuários proprietários dos necessários. Portanto, neste ponto, tanto o administrador do sistema quanto os desenvolvedores de software devem concordar sobre quais devem ser as permissões necessárias para cada pasta e arquivo na estrutura do sistema ou do site.

Permissões do Linux para SW / BD: Conclusão

Conclusão

A administração das permissões sobre os arquivos e pastas dos sistemas operacionais Linux ou UNIX, é uma das grandes vantagens e benefícios do mesmo, pois permitem um controle melhor, preciso e seguro dos diferentes níveis de acesso, edição e execução dos arquivos e pastas.

E muito mais, quando se trata do nível de Servidores Web, ou seja, onde estão hospedados os Sistemas ou Sites internos e externos de uma Organização, uma vez que é uma prioridade mais alta saber quais permissões devem ser atribuídas a cada diretório ou arquivo, para atingir o melhor equilíbrio entre privacidade, segurança e funcionalidade.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   polg28 dito

    Bom Dia como estão?
    Estou mexendo no linux, tenho um aplicativo que pode importar arquivos dele, o usuário carrega um .zip contendo uma pasta com os arquivos xml, após descompactar os arquivos eles estão inseridos no banco de dados. No windows não tenho problemas, ao passar a aplicação para o linux estaria faltando algumas permissões, a princípio para testar tudo eu fiz o que dizem neste artigo e não deveria ser feito haha ​​(mas vou mudar assim que eu pode validar todas as funcionalidades).
    O fato é que os arquivos são descompactados, mas vejo que são baixados apenas com permissão de leitura e gravação para o proprietário, leitura para o grupo do proprietário e sem permissão para outros. Quando os arquivos pertencem ao usuário que usa o aplicativo. Entendo que por não ter as permissões de execução, não está conseguindo seguir o fluxo normal do processo e proceder a inserção do xml no banco de dados. Aí vem a minha dúvida, como posso dar permissões a arquivos que ainda não tenho no sistema? Na pasta que é baixada (tmp) tem todas as permissões, é aplicada de forma re-itálica, mas cada vez que os arquivos são baixados dentro dessa pasta eles têm apenas as permissões mencionadas. Existe alguma maneira de os arquivos que aparecem nessa pasta também ficarem com permissões de execução?
    Espero ter sido claro, muito obrigado antecipadamente e excelente blog

  2.   Linux pós-instalação dito

    Presumo que a pasta / tmp ou… / tmp tenha 755 permissões, mas mesmo assim quando o usuário que possui o aplicativo os deposita, ele os deixa com outras permissões. Não sou desenvolvedor mas suponho que na linguagem da aplicação ou outra poderia indicar-lhe uma rotina que execute o comando comando (bash) das permissões necessárias (chmod) e do dono dos arquivos (chown). Caso contrário, você pode executar um script a cada minuto em que for executado.