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.