CI066 - Oficina de Programação
Laboratório 03

Prof. Armando Luiz N. Delgado

Manipulação de Arquivos. Permissões de Acesso, Busca e Quotas.

  1. Copie para seu diretório de login os diretórios LabNum3 e LabNum4 (incluindo as respectivas subárvores) que estão no diretório de login do usuário ci066.

  2. Opções de ls(1). Use ls(1) com a opção -l para listar os arquivos de seu diretório de login. Observe as permissões de acesso dos diretórios e arquivos, bem como a ordem com que os arquivos são mostrados.

  3. Use agora ls(1) com a opção -a para listar os arquivos de seu diretório de login. Observe os arquivos que são exibidos. Use em seguida a opção -la e observe o resultado. Observe especialmente os arquivos . e ... O que eles representam? O que faz a opção -a?

  4. Descreva o que fazem os comandos abaixo:
               ls -l .
               ls -ld .
               ls -l ..
               ls -ld ..
               ls -l *
               ls -ld *
    

    DICAS: Além de simplesmente executar os comandos e observar os resultados, lembre-se de usar man(1) para obter informações sobre as opções de ls(1).

  5. Permissões de acesso. Crie um arquivo qualquer com algum contéudo dentro do diretório ~/LabNum3/tmp/mail. Como devem ser as permissões de acesso a este diretório e ao arquivo criado de forma que qualquer usuário possa ler o arquivo, mas nenhum usuário (exceto você) possa listar o conteúdo do diretório? Defina primeiro como devem ser os 3 conjuntos de permissões rwx.

    Como deve ser usado chmod(1) para definir estas permissões?

  6. Usando touch(1) e chmod(1), crie 4 (quatro) arquivos no diretório ~/LabNum3/lib com permissão completa para usuário e permissão apenas de leitura para grupo e outros.

  7. Para todos os arquivos a partir de ~/LabNum3/pub, os arquivos devem ter permissão de leitura para todos os usuários e NENHUMA permissão de escrita e execução para grupo e outros.

    Os diretórios devem ter permissão de navegação para todos e leitura e escrita APENAS para o proprietário dos diretórios.

  8. Crie um arquivo qualquer em seu diretório de login e em seguida, usando ls(1), verifique as permissões de acesso do arquivo que você criou. Anote estas permissões em algum lugar de fácil acesso.

  9. Usando chmod(1) e a notação textual, mude a permissão do arquivo criado anteriormente de forma a se ter ao final as seguintes permissões: r-x-wx-x. Em seguida, usando a notação octal, mude as permissões para rw-rw-wx.

    DICA: SEMPRE use ls(1) após uma execução de chmod(1) para verificar se as permissões foram mudadas conforme desejado.

  10. Repita os ítens 5, 6 e 7 usando notação octal.

  11. Deseja-se definir permissão de escrita para grupo e retirar a permissão de execução para outros no arquivo ~/LabNum4/pub/arq_02.txt SEM ALTERAR as outras permissões que já estão definidas para este arquivo. Como fazer isto usando notação simbólica? E com notação octal?

  12. Deseja-se definir permissão de escrita para outros e retirar a permissão de leitura para grupo no arquivo ~/LabNum3/pub/soft/doc/yz/yz-9 SEM ALTERAR as outras permissões que já estão definidas para este arquivo.

    Também se deseja alterar as permissões do diretório ~/LabNum3/pub/soft/doc/yz de forma que somente o proprietário do diretório possa listar seu conteúdo. No entanto, Outros usuários podem criar e acessar arquivos neste diretório. Usuários do Grupo não podem listar e tampouco acessar arquivos no diretório.

    Como fazer isto usando notação simbólica? E com notação octal?

  13. Permissões default de acesso. Execute o comandos abaixo, observando com ATENÇÃO as permissões de acesso:
                 touch arq_teste
                 cp /bin/ls meu_ls
                 ls -l arq_teste meu_ls
                 umask 733
                 touch arq_teste_2
                 cp /bin/ls meu_ls_2
                 ls -l arq_teste_2 meu_ls_2
    

    Qual foi o efeito da execução de umask(1)?

    DICA: As permissões em notação octal indicadas como argumentos de umask(1) ``ligaram'' ou ``desligaram'' as permissões finais dos arquivos criados após a execução de umask?

    NESTE PONTO, CHAME O PROFESSOR PARA ESCLARECIMENTOS.

  14. Qual o argumento de umask(1) para que, por default, as permissões de escrita e execução para usuários do grupo e outros usuários estejam sempre desabilitadas quando se criar um arquivo?

  15. Encontrando arquivos. Use find(1) para encontrar em seu diretório de login (e toda sua subárvore de diretórios) qualquer arquivo chamado core e todos os arquivos terminados com um dos sufixos .bak, %, ~.

  16. Usando a solução do item 15, como você faria para REMOVER os arquivos encontrados?

    DICA 1: Primeiro faça um teste SEM EXECUTAR A OPERAÇÃO DE REMOVER, mas imprimindo na tela os arquivos selecionados. Quando você tiver certeza que somente os arquivos desejados estão sendo selecionados, acrescente a opção do find(1) que efetua remoção de arquivos.

    DICA 2: Leia COM ATENÇÃO E PACIÊNCIA o manual on-line de find(1).

  17. Encontrar em seu diretório de login (e toda sua subárvore de diretórios) todos os arquivos que possuem permissão de Execução e/ou Escrita para Outros. Para cada um dos arquivos encontrados:

    DICA 1: Primeiro faça um teste SEM MUDAR AS PERMISSÕES, mas imprimindo na tela os arquivos selecionados. Quando você tiver certeza que somente os arquivos desejados estão sendo selecionados, acrescente a opção do find(1) que permite a mudança de permissões.

    DICA 2: Leia COM ATENÇÃO E PACIÊNCIA o manual on-line de find(1).

  18. Controle de quotas II. O que fazer quando você descobre que sua quota foi atingida? Um comando conveniente é du(1). Este comando permite que você verifique o espaço em disco ocupado por arquivos e diretórios indicados como argumentos.

    Por exemplo, ao executar

               du  -sh  ~/*  ~/.[a-zA-Z]*
    
    você tem uma estatística do espaço ocupado por arquivos e diretórios em sua área.

    Neste item, entenda e explique em detalhes o que faz o comando acima (o que faz cada opção e o que significam os outros argumentos da linha de comando).

  19. Tarefa para casa: Descobertos os ``culpados'' pelo excesso de espaço ocupado, como você procederia para baixar o espaço em disco aquém de sua quota?

    DICA: Pense em como find(1) e rm(1) podem ser usados. Também verifique se há um padrão nos nomes de arquivos que costumam ocupar espaço desnecessário (por exemplo, arquivos com sufixo .bak e *~, ou arquivos com o nome core). Os arquivos em ``cache'' de navegadores (mozilla, opera, galeon, etc.) também costumam ocupar bastante espaço.

Conclusões



Armando Luiz Nicolini Delgado 2003-10-09