Pesquisa de site

Como tar arquivos, definir permissões de arquivos e localizar arquivos no Linux


Recentemente, a Linux Foundation iniciou a certificação LFCS (Linux Foundation Certified Sysadmin), um novo programa cujo objetivo é permitir que indivíduos executem tarefas básicas a intermediárias de administração de sistemas em sistemas Linux.

Isso inclui suporte a sistemas e serviços já em execução, juntamente com solução de problemas e análises de primeiro nível, além da capacidade de decidir quando encaminhar problemas para equipes de engenharia.

A série será intitulada Preparação para o LFCS (Linux Foundation Certified Sysadmin) Partes 1 a 33 e cobrirá os seguintes tópicos:

Part 1

Como usar o comando ‘Sed’ para manipular arquivos no Linux

Part 2

Como instalar e usar Vi/Vim no Linux

Part 3

Como arquivar arquivos, definir permissões de arquivos e localizar arquivos no Linux

Part 4

Particionando dispositivos de armazenamento, formatando sistemas de arquivos e configurando partição swap

Part 5

Montar/desmontar sistemas de arquivos locais e de rede (Samba e NFS) no Linux

Part 6

Montando Partições como Dispositivos RAID – Criando e Gerenciando Backups do Sistema

Part 7

Gerenciando processos e serviços de inicialização do sistema (SysVinit, Systemd e Upstart

Part 8

Como gerenciar usuários e grupos, permissões de arquivo e acesso Sudo

Part 9

Gerenciamento de pacotes Linux com Yum, RPM, Apt, Dpkg, Aptitude e Zypper

Part 10

Aprendendo scripts básicos de shell e solução de problemas de sistema de arquivos

Part 11

Como gerenciar e criar LVM usando os comandos vgcreate, lvcreate e lvextend

Part 12

Como explorar o Linux com documentações e ferramentas de ajuda instaladas

Part 13

Como configurar e solucionar problemas do Grand Unified Bootloader (GRUB)

Part 14

Monitore o uso de recursos dos processos do Linux e defina limites de processos por usuário

Part 15

Como definir ou modificar parâmetros de tempo de execução do kernel em sistemas Linux

Part 16

Implementando controle de acesso obrigatório com SELinux ou AppArmor no Linux

Part 17

Como definir listas de controle de acesso (ACLs) e cotas de disco para usuários e grupos

Part 18

Instalando serviços de rede e configurando inicialização automática na inicialização

Part 19

Um guia definitivo para configurar um servidor FTP para permitir logins anônimos

Part 20

Configure um servidor DNS de cache recursivo básico e configure zonas para domínio

Part 21

Como instalar, proteger e ajustar o desempenho do servidor de banco de dados MariaDB

Part 22

Como instalar e configurar o servidor NFS para compartilhamento do sistema de arquivos

Part 23

Como configurar o Apache com hospedagem virtual baseada em nome com certificado SSL

Part 24

Como configurar um firewall Iptables para permitir acesso remoto a serviços no Linux

Part 25

Como transformar um Linux em um roteador para lidar com o tráfego de forma estática e dinâmica

Part 26

Como configurar sistemas de arquivos criptografados e trocar usando a ferramenta Cryptsetup

Part 27

Como monitorar o uso do sistema, interrupções e solucionar problemas de servidores Linux

Part 28

Como configurar um repositório de rede para instalar ou atualizar pacotes

Part 29

Como auditar o desempenho, a segurança e a solução de problemas da rede

Part 30

Como instalar e gerenciar máquinas virtuais e contêineres

Part 31

Aprenda os fundamentos do Git para gerenciar projetos com eficiência

Part 32

Guia para iniciantes na configuração de endereços IPv4 e IPv6 no Linux

Part 33

Um guia para iniciantes para criar ligações e pontes de rede no Ubuntu

Esta postagem é a Parte 3 de uma série de 33 tutoriais, aqui nesta parte abordaremos como arquivar/compactar arquivos e diretórios, definir atributos de arquivo e localizar arquivos no sistema de arquivos, que são necessários para o LFCS< exame de certificação.

Ferramentas de arquivamento e compactação para Linux

Uma ferramenta de arquivamento de arquivos agrupa um conjunto de arquivos em um único arquivo independente que podemos fazer backup em vários tipos de mídia, transferir através de uma rede ou enviar por e-mail.

O utilitário de arquivamento usado com mais frequência no Linux é o comando tar. Quando um utilitário de arquivamento é usado junto com uma ferramenta de compactação, ele permite reduzir o tamanho do disco necessário para armazenar os mesmos arquivos e informações.

Utilitário tar do Linux

tar agrupa um grupo de arquivos em um único arquivo (comumente chamado de arquivo tar ou tarball). O nome originalmente significava tape archiver, mas devemos observar que podemos usar esta ferramenta para arquivar dados em qualquer tipo de mídia gravável (não apenas em fitas).

Tar é normalmente usado com uma ferramenta de compactação como gzip, bzip2 ou xz para produzir um tarball compactado.

A sintaxe básica do comando tar é a seguinte:

tar [options] [pathname ...]

Onde ... representa a expressão usada para especificar quais arquivos devem ser tratados.

Comandos Tar mais comumente usados

Long option Abbreviation Description
 –create  c  Creates a tar archive
 –concatenate  A  Appends tar files to an archive
 –append  r  Appends files to the end of an archive
 –update  u  Appends files newer than copy in archive
 –diff or –compare  d  Find differences between archive and file system
 –file archive  f  Use archive file or device ARCHIVE
 –list  t  Lists the contents of a tarball
 –extract or –get  x  Extracts files from an archive

Modificadores de operação tar normalmente usados

Long option Abbreviation Description
 –directory dir  C  Changes to directory dir before performing operations
 –same-permissions  p  Preserves original permissions
 –verbose  v  Lists all files read or extracted. When this flag is used along with –list, the file sizes, ownership, and time stamps are displayed.
 –verify  W  Verifies the archive after writing it
 –exclude file  —  Excludes files from the archive
 –exclude=pattern  X  Exclude files, given as a PATTERN
 –gzip or –gunzip  z  Processes an archive through Gzip
 –bzip2  j  Processes an archive through bzip2
 –xz  J  Processes an archive through xz

Utilitários Linux Gzip, Bzip2 e Xz

Gzip é a ferramenta de compactação mais antiga e fornece a menor compactação, enquanto bzip2 fornece compactação melhorada. Além disso, xz é o mais novo, mas (normalmente) fornece a melhor compactação.

As vantagens da melhor compactação têm um preço: o tempo necessário para concluir a operação e os recursos do sistema utilizados durante o processo.

Normalmente, os arquivos tar compactados com esses utilitários possuem extensões .gz, .bz2 ou .xz, respectivamente. Nos exemplos a seguir, usaremos estes arquivos: arquivo1, arquivo2, arquivo3, arquivo4 e < forte>arquivo5.

Compactando arquivos com gzip, bzip2 e xz

Agrupe todos os arquivos no diretório de trabalho atual e compacte o pacote resultante com gzip, bzip2 e xz (observe o uso de um arquivo regular expressão para especificar quais arquivos devem ser incluídos no pacote – isso evita que a ferramenta de arquivamento agrupe os tarballs criados nas etapas anteriores).

tar czf myfiles.tar.gz file[0-9]
tar cjf myfiles.tar.bz2 file[0-9]
tar cJf myfile.tar.xz file[0-9]

Listar conteúdo e atualizar/anexar arquivos Arquivo Tar

Liste o conteúdo de um tarball e exiba as mesmas informações que uma longa listagem de diretórios. Observe que as operações update ou append não podem ser aplicadas diretamente a arquivos compactados.

Descompacte arquivos Tar

Se você precisar atualizar ou anexar um arquivo a um tarball compactado, será necessário descompactar o arquivo tar e atualizar/anexar a ele e, em seguida, compactá-lo novamente.

tar tvf [tarball]

Execute qualquer um dos seguintes comandos:

gzip -d myfiles.tar.gz	[#1] 
bzip2 -d myfiles.tar.bz2	[#2] 
xz -d myfiles.tar.xz 		[#3] 

Excluir ou adicionar arquivos ao arquivo Tar

tar --delete --file myfiles.tar file4 (deletes the file inside the tarball)
tar --update --file myfiles.tar file4 (adds the updated file)

e

gzip myfiles.tar		[ if you choose #1 above ]
bzip2 myfiles.tar		[ if you choose #2 above ]
xz myfiles.tar 		[ if you choose #3 above ]

Finalmente,

tar tvf [tarball] #again

e compare a data e hora da modificação do arquivo4 com as mesmas informações mostradas anteriormente.

Excluir arquivos dos backups

Suponha que você queira fazer um backup dos diretórios home do usuário. Uma boa prática de administração de sistemas seria (também pode ser especificada pelas políticas da empresa) excluir todos os arquivos de vídeo e áudio dos backups.

Talvez sua primeira abordagem seja excluir do backup todos os arquivos com extensão .mp3 ou .mp4 (ou outras extensões). E se você tiver um usuário inteligente que pode alterar a extensão para .txt ou .bkp, sua abordagem não fará muito bem.

Para detectar um arquivo de áudio ou vídeo, você precisa verificar seu tipo de arquivo com um arquivo. O script de shell a seguir fará o trabalho.

#!/bin/bash
Pass the directory to backup as first argument.
DIR=$1
Create the tarball and compress it. Exclude files with the MPEG string in its file type.
-If the file type contains the string mpeg, $? (the exit status of the most recently executed command) expands to 0, and the filename is redirected to the exclude option. Otherwise, it expands to 1.
-If $? equals 0, add the file to the list of files to be backed up.
tar X <(for i in $DIR/*; do file $i | grep -i mpeg; if [ $? -eq 0 ]; then echo $i; fi;done) -cjf backupfile.tar.bz2 $DIR/*

Restaurar backup com permissões de preservação de tar

Você pode então restaurar o backup para o diretório inicial do usuário original (user_restore neste exemplo), preservando as permissões, com o comando a seguir.

tar xjf backupfile.tar.bz2 --directory user_restore --same-permissions

Usando o comando Localizar para pesquisar arquivos

O comando find é usado para pesquisar recursivamente em árvores de diretórios por arquivos ou diretórios que correspondam a certas características e pode então imprimir os arquivos ou diretórios correspondentes ou executar outras operações nas correspondências.

Normalmente, pesquisaremos por nome, proprietário, grupo, tipo, permissões, data e tamanho.

A sintaxe básica do comando find é a seguinte:

find [directory_to_search] [expression]

Encontrando arquivos recursivamente de acordo com o tamanho

Encontre todos os arquivos (-f) no diretório atual (.) e 2 subdiretórios abaixo (-maxprofundidade 3 inclui o diretório de trabalho atual e 2 níveis abaixo) cujo tamanho (-size) é maior que 2 MB.

find . -maxdepth 3 -type f -size +2M

Encontrar e excluir arquivos que correspondam a determinados critérios

Arquivos com permissões 777 às vezes são considerados uma porta aberta para invasores externos. De qualquer forma, não é seguro permitir que alguém faça alguma coisa com os arquivos. Adotaremos uma abordagem bastante agressiva e os excluiremos! ('{}' + é usado para “coletar” os resultados da pesquisa).

find /home/user -perm 777 -exec rm '{}' +

Encontrando arquivos com base em carimbos de data/hora

Procure por arquivos de configuração em /etc que foram acessados (-atime) ou modificados (-mtime) mais (+180) ou menos (-180) do que há 6 meses ou exatamente 6 meses atrás (180) .

Modifique o seguinte comando conforme o exemplo abaixo:

find /etc -iname "*.conf" -mtime -180 -print

Definir permissões de arquivo e atributos básicos

Os primeiros 10 caracteres na saída de ls -l são os atributos do arquivo. O primeiro destes caracteres é usado para indicar o tipo de arquivo:

  • - : um arquivo normal
  • -d : um diretório
  • -l : um link simbólico
  • -c : um dispositivo de caracteres (que trata os dados como um fluxo de bytes, ou seja, um terminal)
  • -b : um dispositivo de bloco (que lida com dados em blocos, ou seja, dispositivos de armazenamento)

Os próximos nove caracteres dos atributos do arquivo são chamados de modo de arquivo e representam leitura (r), gravação (w) e execução (x) permissões do proprietário do arquivo, do proprietário do grupo do arquivo e do restante dos usuários (comumente chamados de “o mundo”).

Enquanto a permissão de leitura em um arquivo permite que ele seja aberto e lido, a mesma permissão em um diretório permite que seu conteúdo seja listado se a permissão de execução também estiver definida. Além disso, a permissão de execução em um arquivo permite que ele seja tratado como um programa e executado, enquanto em um diretório permite que o mesmo seja gravado nele.

As permissões dos arquivos são alteradas com o comando chmod, cuja sintaxe básica é a seguinte:

chmod [new_mode] file

Onde new_mode é um número octal ou uma expressão que especifica as novas permissões.

O número octal pode ser convertido de seu equivalente binário, que é calculado a partir das permissões de arquivo desejadas para o proprietário, o grupo e o mundo, como segue:

A presença de determinada permissão equivale a uma potência de 2 (r=22, w=21, x=20 ), enquanto sua ausência equivale a 0. Por exemplo:

Para definir as permissões do arquivo conforme acima em formato octal, digite:

chmod 744 myfile

Você também pode definir o modo de um arquivo usando uma expressão que indica os direitos do proprietário com a letra u, os direitos do proprietário do grupo com a letra g e o restante com o.

Todos esses “indivíduos ” podem ser representados ao mesmo tempo pela letra a. As permissões são concedidas (ou revogadas) com os sinais + ou -, respectivamente.

Remover permissão de execução em um script para todos os usuários

Conforme explicamos anteriormente, podemos revogar uma determinada permissão acrescentando-lhe o sinal de menos e indicando se ela precisa ser revogada para o proprietário, o proprietário do grupo ou todos os usuários. A linha abaixo pode ser interpretada da seguinte forma: Alterar modo para todos (a) usuários, revogar (-) permissão de execução (x) .

chmod a-x backup.sh

Conceder permissões de leitura, gravação e execução para um arquivo ao proprietário e ao proprietário do grupo, além de permissões de leitura para todo o mundo.

Quando usamos um número octal de 3 dígitos para definir permissões para um arquivo, o primeiro dígito indica as permissões para o proprietário, o segundo dígito para o proprietário do grupo e o terceiro dígito para todos os demais:

  • Proprietário: (r=22 + w=21 + x=20=7)
  • Proprietário do grupo: (r=22 + w=21 + x=20=7)
  • Mundo: (r=22 + w=0 + x=0=4),
chmod 774 myfile

Com o tempo e com prática, você será capaz de decidir qual método de alteração de modo de arquivo funciona melhor para você em cada caso. Uma longa listagem de diretórios também mostra o proprietário do arquivo e o proprietário do grupo (que servem como um controle de acesso rudimentar, porém eficaz, aos arquivos em um sistema):

A propriedade do arquivo é alterada com o comando chown. O proprietário e o proprietário do grupo podem ser alterados ao mesmo tempo ou separadamente. Sua sintaxe básica é a seguinte:

chown user:group file

Onde pelo menos um usuário ou grupo precisa estar presente.

Exemplos de comandos Chown

Alterar o proprietário de um arquivo para um determinado usuário.

chown gacanepa sent

Alterar o proprietário e o grupo de um arquivo para um par usuário:grupo específico.

chown gacanepa:gacanepa TestFile

Alterando apenas o proprietário do grupo de um arquivo para um determinado grupo. Observe os dois pontos antes do nome do grupo.

chown :gacanepa email_body.txt
Conclusão

Como administrador de sistema, você precisa saber como criar e restaurar backups, como encontrar arquivos em seu sistema e alterar seus atributos, além de alguns truques que podem facilitar sua vida e evitar que você tenha problemas futuros.

Espero que as dicas fornecidas neste artigo ajudem você a atingir esse objetivo. Sinta-se à vontade para adicionar suas próprias informações e ideias na seção de comentários para o benefício da comunidade. Desde já, obrigado!

O e-book LFCS já está disponível para compra. Solicite sua cópia hoje e comece sua jornada para se tornar um administrador de sistema Linux certificado!

Product Name Price Buy
The Linux Foundation’s LFCS Certification Preparation Guide $19.99 [Buy Now]

Por último, mas não menos importante, considere comprar seu voucher de exame usando os links a seguir para ganhar uma pequena comissão, que nos ajudará a manter este livro atualizado.