Mudanças entre as edições de "Sistemas Operacionais (técnico)"
Linha 69: | Linha 69: | ||
====Redirecionamento de entrada e saídas==== | ====Redirecionamento de entrada e saídas==== | ||
− | Sempre existem 3 arquivos "abertos" por | + | Sempre existem 3 arquivos "abertos" por ''default'' para um determinado processo. São eles a entrada padrão (''stdin'', normalmente associada ao teclado), ''stdout''(normalmente associada a tela) e a saída padrão de erros (''stderr'', normalmente associada a tela). Estes ''arquivos'' podem ser modificados resultando no que se chama de redirecionamento das entradas e saídas do processo. |
Cada arquivo aberto, associado a um processo, possui um descritor identificado por um número que se constitui em um índice de uma tabela de arquivos abertos associados ao processo. Segue-se um resumo da forma de realizar redirecionamento. | Cada arquivo aberto, associado a um processo, possui um descritor identificado por um número que se constitui em um índice de uma tabela de arquivos abertos associados ao processo. Segue-se um resumo da forma de realizar redirecionamento. | ||
Linha 79: | Linha 79: | ||
Cria/sobreescreve um arquivo de tamanho zero, similar ao ''touch'' | Cria/sobreescreve um arquivo de tamanho zero, similar ao ''touch'' | ||
> lixo | > lixo | ||
− | |||
Resumo das redireções das saídas: | Resumo das redireções das saídas: | ||
+ | *1>filename # Redireciona ''stdout'' para o arquivo ''filename'' | ||
+ | *1>>filename # Redireciona e acrescenta a ''stdout'' para o arquivo ''filename'' | ||
+ | *2>filename # Redireciona ''stderr'' para o arquivo ''filename'' | ||
+ | *2>>filename # Redireciona e faz ''append'' da ''stderr'' para o arquivo ''filename'' | ||
+ | *&>filename # Redireciona ambos ''stdout'' and ''stderr'' para o arquivo ''filename'' | ||
+ | ====Exercícios==== | ||
+ | *Listar o diretório corrente, de forma detalhada e em ordem crescente de modificação, redirecionando a saída para um arquivo ''ListaOrdenada'': | ||
+ | ls -l > ListaOrdenada | ||
+ | *Acrescentar ao final (''append'') do arquivo ''ListaOrdenada'', a data atual: | ||
+ | date >> ListaOrdenada | ||
+ | *Criar um arquivo chamado ''teste1'', com a frase “Alo Mundo”, usando o comando ''echo'' e redirecionamento de saída: | ||
+ | echo Alo Mundo > teste1 | ||
+ | *Criar um arquivo vazio usando somente > arquivo; | ||
+ | > ArquivoVazio | ||
+ | <blockquote style="background-color: white; color: black; border:1px solid black; padding: 1em;"> | ||
+ | Acho que esta é a forma mais rápida de criar um arquivo vazio! | ||
+ | </blockquote> | ||
+ | *Aplicar um comando ''ls'' ao diretório ''/eetc'' (intecionalmente errado) redirecionando a saída para ''lixo1'': | ||
+ | ls /eetc > lixo1 | ||
+ | *Conferir o conteúdo de ''lixo1'' | ||
+ | cat lixo1 | ||
+ | *Repetir o comando ''ls'' ao diretório ''/eetc'' (intecionalmente errado) redirecionando a saída de erro para ''lixo2''; | ||
+ | ls /eetc 2> lixo2 | ||
+ | *Conferir o conteúdo de ''lixo2'' | ||
+ | cat lixo2 | ||
+ | *Ordenar o arquivo passwd: | ||
+ | sort < /etc/passwd > PasswdOrdenado | ||
==Referências Bibliográficas== | ==Referências Bibliográficas== |
Edição das 15h26min de 6 de outubro de 2010
CÓDIGO DA UNIDADE CURRICULAR -
CARGA HORÁRIA: 2 horas/semana = 40 horas.
PRÉ REQUISITOS: , , ,
UNIDADES CURRICULARES CLIENTES: Redes de Computadores , , ,
Competências
Habilidades
Bases Tecnológicas
Diários de Aula
Aula 9 - Ainda Permissões de acesso a arquivos e diretórios - Uso da umask e exercícios complementares
Objetivos
- Uso da umask;
- Exercícios adicionais.
Uso da umask
A umask é uma palavra binária que permite definir quais são as permissões que serão dadas na criação de um arquivo ou de um diretório. A regra geral para formação destas permissões é:
- Para arquivo: 666 AND (NOT umask);
- Para diretório: 777 AND (NOT umask);
Ou seja, suponha que vamos criar um arquivo. A umask pode ser verificada com o comando:
umask
Normalmente esta máscara é 022. Se você criar um arquivo ele terá as seguintes permissões:
666 AND (NOT 022) = 666 AND 755 = 644
Ou seja, direito de rw para usuário, r para grupo e outros.
Para diretórios seria:
777 AND (NOT 022) = 777 AND 755 = 755
Ou seja, direito de rwx para usuário, rx para grupo e outros.
Se você usar o comando:
umask -S
será possível visualizar estas permissõeses de forma simbólica.
Usando a umask
- Modifique a umask para que todos os arquivos criados para outros tenham direito de leitura e escrita (e execução para diretórios). Basta aplicar o comando umask e a máscara a ser aplicada;
- Crie um arquivo qualquer:
touch teste.txt
- Crie um diretório qualquer qualquer:
mkdir teste
- Confira os resultados:
ls -l
- Volte a umask ao valor inicial
Exercícios adicionais
Usando uma máquina virtual, como na aula anterior, criar 4 usuários: joao, maria, jose e lara. Os usuários joao, maria e lara pertencem a um grupo projX, que também deve ser criado (se ainda não existir).
Algumas restrições de permissão
O usuário joao possui os seguintes diretórios: docs_outros, docs_pessoais e docs_projX. Ele colocou as seguintes restrições de acesso:
- Em docs_pessoais somente joao pode criar arquivos e diretórios. Em docs_projX, somente joao e os integrantes do grupo projX podem criar arquivos e entrar no diretório;
- Em docs_outros qualquer um pode entrar e listar o diretório mas não pode criar ou renomear arquivos no mesmo;
Testando permissões
- Logue como joao e crie os arquivos alfa.txt e beta.txt no diretório docs_pessoais com direito de acesso a somente leitura para outros. Dê acesso a leitura e escrita para proprietário e grupo.
- Logue como maria e teste os direitos de acesso aos diretórios criados por joao.
- Logue como jose e tente entrar nos diretórios criados por joao. Qual deles permite este acesso?
- Faça lara criar um arquivo em docs_projX;
Aula 10 - Entradas e Saídas Padrão
Objetivos
- Conceituar e trabalhar entradas e saída padrão, saída de erros padrão e pipes;
- Trabalhar os comandos cut, find, wc, grep, head e tail.
Redirecionamento de entrada e saídas
Sempre existem 3 arquivos "abertos" por default para um determinado processo. São eles a entrada padrão (stdin, normalmente associada ao teclado), stdout(normalmente associada a tela) e a saída padrão de erros (stderr, normalmente associada a tela). Estes arquivos podem ser modificados resultando no que se chama de redirecionamento das entradas e saídas do processo.
Cada arquivo aberto, associado a um processo, possui um descritor identificado por um número que se constitui em um índice de uma tabela de arquivos abertos associados ao processo. Segue-se um resumo da forma de realizar redirecionamento.
Redireção de stdout (arquivo lista é sobrescrito):
ls > lista
Redireção de stdout fazendo um append ao arquivo de saída:
ls >> lista
Cria/sobreescreve um arquivo de tamanho zero, similar ao touch
> lixo
Resumo das redireções das saídas:
- 1>filename # Redireciona stdout para o arquivo filename
- 1>>filename # Redireciona e acrescenta a stdout para o arquivo filename
- 2>filename # Redireciona stderr para o arquivo filename
- 2>>filename # Redireciona e faz append da stderr para o arquivo filename
- &>filename # Redireciona ambos stdout and stderr para o arquivo filename
Exercícios
- Listar o diretório corrente, de forma detalhada e em ordem crescente de modificação, redirecionando a saída para um arquivo ListaOrdenada:
ls -l > ListaOrdenada
- Acrescentar ao final (append) do arquivo ListaOrdenada, a data atual:
date >> ListaOrdenada
- Criar um arquivo chamado teste1, com a frase “Alo Mundo”, usando o comando echo e redirecionamento de saída:
echo Alo Mundo > teste1
- Criar um arquivo vazio usando somente > arquivo;
> ArquivoVazio
Acho que esta é a forma mais rápida de criar um arquivo vazio!
- Aplicar um comando ls ao diretório /eetc (intecionalmente errado) redirecionando a saída para lixo1:
ls /eetc > lixo1
- Conferir o conteúdo de lixo1
cat lixo1
- Repetir o comando ls ao diretório /eetc (intecionalmente errado) redirecionando a saída de erro para lixo2;
ls /eetc 2> lixo2
- Conferir o conteúdo de lixo2
cat lixo2
- Ordenar o arquivo passwd:
sort < /etc/passwd > PasswdOrdenado
Referências Bibliográficas
Professores da Unidade Curricular
- 2010-2 - Odilson Tadeu Valle
- 2010-2 - Eraldo Silveira e Silva