Introdução
Neste laboratório, você aprenderá como verificar se um arquivo é legível no Linux usando várias ferramentas de linha de comando. Você começará usando o comando fundamental test -r para verificar programaticamente as permissões de leitura, compreendendo seu uso em expressões condicionais.
Em seguida, você explorará o comando ls -l para inspecionar visualmente as permissões de arquivo, obtendo informações sobre a string de permissão e seu significado. Finalmente, você se aprofundará no comando stat para obter informações detalhadas sobre um arquivo, incluindo suas permissões de acesso e outros metadados. Ao concluir estas etapas, você adquirirá habilidades práticas para determinar a legibilidade de arquivos em um ambiente Linux.
Testar a legibilidade com test -r
Nesta etapa, você aprenderá como verificar se você tem permissão de leitura para um arquivo usando o comando test com a opção -r.
O comando test é um comando de shell embutido que avalia expressões condicionais. Ele é frequentemente usado em scripts de shell para tomar decisões. A opção -r verifica especificamente se um arquivo existe e é legível pelo usuário atual.
Vamos criar um arquivo simples para testar isso. Usaremos o comando echo para colocar algum texto em um arquivo chamado my_file.txt no seu diretório ~/project.
Digite o seguinte comando e pressione Enter:
echo "This is a test file." > ~/project/my_file.txt
Este comando cria o arquivo ~/project/my_file.txt e escreve a string "This is a test file." nele. O símbolo > redireciona a saída do comando echo para o arquivo especificado.
Agora, vamos usar test -r para verificar se você pode ler este arquivo. O próprio comando test não produz saída se a condição for verdadeira. Geralmente, combinamos isso com outros comandos como echo para ver o resultado.
Digite o seguinte comando e pressione Enter:
test -r ~/project/my_file.txt && echo "File is readable."
O operador && significa "execute o comando à direita somente se o comando à esquerda for bem-sucedido (retornar um status de saída zero)". Se test -r ~/project/my_file.txt for verdadeiro (significando que o arquivo é legível), o comando echo será executado.
Você deve ver a saída:
File is readable.
Agora, vamos tentar verificar um arquivo que não existe.
Digite o seguinte comando e pressione Enter:
test -r ~/project/non_existent_file.txt && echo "This won't be printed."
Como ~/project/non_existent_file.txt não existe, test -r retornará um status de saída diferente de zero (falha), e o comando echo não será executado. Você não deve ver nenhuma saída deste comando.
O comando test é uma ferramenta fundamental para scripting no Linux. Compreender como usar suas várias opções, como -r, é crucial para escrever scripts robustos que podem verificar permissões de arquivo e existência antes de tentar operações.
Clique em Continuar para prosseguir para a próxima etapa.
Verificar permissões com ls -l
Na etapa anterior, você usou test -r para verificar se um arquivo é legível. Agora, vamos usar o comando ls com a opção -l para ver as permissões detalhadas de um arquivo.
O comando ls lista o conteúdo do diretório. A opção -l fornece um formato de "listagem longa", que inclui informações sobre o tipo de arquivo, permissões, número de links rígidos (hard links), proprietário, grupo, tamanho, hora da modificação e nome do arquivo.
Vamos analisar as permissões do arquivo my_file.txt que você criou na etapa anterior. Certifique-se de estar no diretório ~/project. Você pode confirmar seu diretório atual usando o comando pwd:
pwd
Você deve ver /home/labex/project.
Agora, digite o seguinte comando e pressione Enter:
ls -l my_file.txt
Você verá uma saída semelhante a esta:
-rw-rw-r-- 1 labex labex XX Month XX XX:XX my_file.txt
Vamos detalhar a primeira parte da saída, que representa o tipo de arquivo e as permissões:
-rw-rw-r--
Esta string de dez caracteres informa muito sobre as permissões do arquivo.
O primeiro caractere indica o tipo de arquivo:
-significa que é um arquivo regular.dsignifica que é um diretório.lsignifica que é um link simbólico.- (Existem outros tipos, mas estes são os mais comuns).
Os próximos nove caracteres são agrupados em três conjuntos de três:
- O primeiro conjunto (
rw-) mostra as permissões para o proprietário do arquivo. - O segundo conjunto (
rw-) mostra as permissões para o grupo ao qual o arquivo pertence. - O terceiro conjunto (
r--) mostra as permissões para outros (todos os outros).
- O primeiro conjunto (
Dentro de cada conjunto de três caracteres:
_O primeiro caractere indica a permissão de leitura (r). Se um hífen (-) estiver presente, a permissão de leitura é negada.
_ O segundo caractere indica a permissão de escrita (w). Se um hífen (-) estiver presente, a permissão de escrita é negada. * O terceiro caractere indica a permissão de execução (x). Se um hífen (-) estiver presente, a permissão de execução é negada.
Portanto, para my_file.txt com permissões -rw-rw-r--:
- O proprietário (
labex) tem permissões de leitura (r) e escrita (w), mas nenhuma permissão de execução (-). - O grupo (
labex) tem permissões de leitura (r) e escrita (w), mas nenhuma permissão de execução (-). - Outros têm permissão de leitura (
r), mas nenhuma permissão de escrita (-) ou execução (-).
Esta saída confirma que o proprietário (labex) tem permissão de leitura, que é o motivo pelo qual test -r funcionou na etapa anterior.
Compreender a saída de ls -l é fundamental para gerenciar arquivos e diretórios no Linux e controlar quem pode acessá-los.
Clique em Continuar para prosseguir.
Inspecionar acesso ao arquivo com stat
Nesta etapa, você usará o comando stat para obter informações detalhadas sobre um arquivo, incluindo seus tempos de acesso, modificação e alteração, bem como suas permissões em formatos simbólicos e numéricos.
Embora ls -l forneça uma boa visão geral das permissões, stat oferece uma análise mais aprofundada dos metadados do arquivo.
Vamos usar stat no arquivo my_file.txt que você criou anteriormente no diretório ~/project.
Digite o seguinte comando e pressione Enter:
stat ~/project/my_file.txt
Você verá uma saída semelhante a esta:
File: /home/labex/project/my_file.txt
Size: XX Blocks: X IO Block: XXXX regular file
Device: XXh/XXd Inode: XXXXXXXX Links: X
Access: (0664/-rw-rw-r--) Uid: ( XXXX/ labex) Gid: ( XXXX/ labex)
Access: XXXX-XX-XX XX:XX:XX.XXXXXXXXXX +XXXX
Modify: XXXX-XX-XX XX:XX:XX.XXXXXXXXXX +XXXX
Change: XXXX-XX-XX XX:XX:XX.XXXXXXXXXX +XXXX
Birth: -
Vamos analisar algumas linhas-chave na saída:
File: O nome do arquivo.Size: O tamanho do arquivo em bytes.Access: (0664/-rw-rw-r--): Esta linha mostra as permissões em dois formatos:0664: Esta é a representação numérica (octal) das permissões. Cada dígito representa as permissões para proprietário, grupo e outros, respectivamente.6para proprietário:rwx(read=4, write=2, execute=0) -> 4+2+0 = 66para grupo:rwx(read=4, write=2, execute=0) -> 4+2+0 = 64para outros:rwx(read=4, write=0, execute=0) -> 4+0+0 = 4- O
0inicial é frequentemente usado para indicar a notação octal.
-rw-rw-r--: Esta é a representação simbólica das permissões, sobre a qual você aprendeu comls -l.
UideGid: O ID do Usuário e o ID do Grupo do proprietário e grupo do arquivo, juntamente com seus nomes.Access,Modify,Change: Estas linhas mostram os timestamps para o arquivo:Access: A última vez que o arquivo foi acessado (lido).Modify: A última vez que o conteúdo do arquivo foi modificado.Change: A última vez que os metadados do arquivo (como permissões, proprietário, grupo) foram alterados.
O comando stat é muito útil quando você precisa de informações detalhadas sobre as propriedades de um arquivo, especialmente para scripting ou solução de problemas de permissão.
Você agora aprendeu três maneiras diferentes de inspecionar permissões de arquivo e informações de acesso no Linux: test -r, ls -l e stat. Estas são ferramentas essenciais para trabalhar com arquivos na linha de comando.
Clique em Continuar para concluir este laboratório.
Resumo
Neste laboratório, você aprendeu como verificar se um arquivo é legível no Linux usando o comando test com a opção -r. Você praticou a criação de um arquivo e, em seguida, usou test -r em conjunto com o operador && para imprimir condicionalmente uma mensagem com base na legibilidade do arquivo. Você também observou que test -r retorna falso para arquivos inexistentes, impedindo a execução de comandos subsequentes. Esta etapa demonstrou um método fundamental para verificar permissões de arquivo programaticamente em shell scripting.



