Aula 11 semana

Preview:

Citation preview

Administração de RedesJorge Ávila

Linux/Servidores Linux

ExercicioCrie dos diretórios direrotio1 e diretorio2Dentro do diretorio1 crie dois arquivos arquivo1 e arquivo2Copie o diretorio1 para dentro do diretorio2Exclua o diretorio2

Operações avançadasfind grep head tail Redirecionamento de E/S Pipe Criação de links Empacotamento, compactação e descompactação de arquivos

Operações AvançadasO comando “find”

O comando find pode ser utilizado para pesquisar arquivos pelo nome, data de criação ou modificação, proprietário, tamanho do arquivo e até o tipo do arquivo

A estrutura básica do comando$ find [diretório inicial] [parâmetros] [ações]

Vejamos o que significam estes campos...

Operações Avançadas$ find [diretório inicial] [parâmetros] [ações]Diretório inicial – especifica o diretório onde a pesquisa será iniciada Os parâmetros – critérios da busca As ações – especifica que ações serão executadas nos arquivos encontrados na busca

Operações AvançadasExemplos:

$ find / -name passwd

$ find /home/user -name arq*

$find /etc –name ‘mo*’

$ find /etc -size +1M

Operações AvançadasComando “grep”

Comando Grep é usado para verificar o conteúdo de um ou mais arquivos na tentativa de encontrar a ocorrência de um padrão de texto específico dentro dos arquivos.

Em geral, o padrão para o comando é:$ grep [opções] <texto para pesquisa> <arquivos>

Operações AvançadasComando “grep”

Exemplos: grep <seu usuário> /etc/passwd

cat /etc/passwd | grep <seu usuário>

Operações AvançadasParâmetros importantes:

-l –mostra o nome dos arquivos que contêm o texto de busca -i – não diferencia letras maiúsculas e minúsculas para o termo pesquisado

Operações AvançadasComando “head”

Exibe as primeiras linhas de um arquivo Por padrão, exibe as primeiras 10 linhas Para especificar a quantidade de linhas, utilize o

parâmetro –n <número> Ex:

$ head –n 5 /etc/passwd

Operações AvançadasSe temos um comando para ver o início do arquivo???

O comando “tail” é utilizado para visualizar o final do arquivo

Assim como no comando head, utilize o parâmetro –n <número> para exibir a quantidade de linhas desejadas

O tail tem um parâmetro especial para que possamos visualizar o arquivo enquanto o mesmo é alterado.

Operações AvançadasExemplo:Conecte-se a dois terminais (ALT+F1 e ALT+F2) No primeiro digite o comando

$ echo texto >> teste1.txt No segundo terminal, digite o comando

$ tail –f teste1.txt No primeiro, execute

$ echo texto >> teste1.txt Observe o que aconteceu no segundo terminal

Operações AvançadasDutos ou pipes ( | )

Utilizado como conexão de utilitários. É uma maneira de redirecionar as entradas e saídas, de modo que a saída de um comando torna-se a entrada do comando seguinte.

Pode-se usar vários dutos em uma mesma linha de comando, de maneira que é possível combinar tantos comandos quantos forem necessários.

Operações AvançadasDutos ou pipes ( | )

Exemplos $ cat /etc/passwd | grep <seu usuario> ls /etc | more cat /etc/passwd | sort

Operações AvançadasEmpacotamento, compactação e descompactação de arquivosO programa “tar” é utilizado para arquivamento utilizado para agrupar e extrair arquivos de um tarfile; Pode ser considerado o comando mais utilizado para realizar backups no sistema Linux (Tape ARchives); Possui uma série de parâmetros para a realização de suas funções.

Operações AvançadasO comando “tar” – agrupando arquivos

$ tar –cvf backupEtc.tar /etc

Operações AvançadasO comando “tar” – agrupando arquivos

Observe que o arquivo backupEtc.tar foi criado. Ele contêm todos os arquivos e subdiretórios do

diretório /etc. Uma forma fácil de visualizar o conteúdo de um

arquivo tar é utilizando o comando “less” $ less backupEtc.tar

Operações AvançadasO comando “tar” – extraindo arquivos

$ tar –xvf backupEtc.tar

Operações AvançadasO comando “tar” – extraindo arquivos

Observe que um diretório “etc” foi criado no diretório atual.

Caso você queira extrair o conteúdo de um tarfile em um outro local, basta passar o “–C <destino>” como parâmetro:

$ tar –xvf backupEtc.tar –C /tmp

Operações AvançadasMas o que os parâmetros utilizados até agora querem dizer:

-c : criar um arquivo -v : lista detalhadamente os arquivos

processados -f : especifica o arquivo ou dispositivo a ser

utilizado -x : extrai arquivos de um pacote

Operações AvançadasObserve que, apesar de agrupados, os arquivos de um tarfile não são compactados.Para fazer a compactação, é necessário a utilização de um parâmetro adicional:

-z : compacta utilizando o gzipExemplo:

$ tar –zcvf backupEtc.tar.gz /etc

Exercício 1Crie um tarfile do diretório /etc – com e sem compactação e compare o tamanho dos dois arquivos gerados.Crie um diretório temporário e descompacte o arquivo compactado neste diretório. Lembre-se do parâmetro “–C”.

Exercício 2Crie um diretório para armazenar o backup compactado do arquivo /home/alunoApós isso descompacte esse mesmo diretório e leia o mesmo com os comandos que você conhece

Exercício 3Crie dois diretório sendo que um deles serve para armazenar o backup compactado do arquivo /homeApós isso descompacte dentro do dentro do segundo diretorio

Editor de texto VIMO vi é sigla de “Visual Interface”Quando ao vi foi criado (começo da década de 80), os textos digitados não podiam ser vistos!Em 1992 foi criado o vim (vi imitator), um clone do vi, porém com muitas outras funcionalidadesApós um tempo, o vim passou a ser chamado de vi improved (vi melhorado)Atualmente, é um dos editores mais utilizados no mundo Unix

Editor de texto VIMO vim é um editor de textos extremamente poderoso; Ele pode abrir vários arquivos ao mesmo tempo; Possui sistema de autocorreção; Recursos de seleção visual, macros, expressões regulares, etc... Dica para quem gostar do vim: ele não é exclusivo da plataforma Unix. Funciona nas plataformas MacOS, Linux, Windows.

Editor de texto VIMOperações básicas do vim $ vim -> abre o vim vazio, sem nenhum arquivo; $ vim <arquivo> –> abre o arquivo para edição $ vim <arquivo> + -> abre o arquivo com o cursos no final do mesmo $ vim <arquivo> +10 -> abre o arquivo com o cursos na linha 10 $ vim <arquivo> +/iso9660 -> abre o arquivo com o cursos na primeira ocorrência da palavra iso9660

Editor de texto VIMOperações básicas do vim Ao iniciar o vim executa o modo de comando Para iniciar o modo de edição pressione “i” no seu teclado; Desta forma o vim entra em modo de inserção (observe a marcação -- INSERT -- no rodapé).

Editor de texto VIMComandos para salvar o arquivo

:w => Salva o arquivo que está sendo editado no momento.

:wq => Salva e sai. x => Idem. :w! => Salva forçado. :wq! => Salva e sai forçado.

Editor de texto VIMModos edição:

“i” - entra em modo de inserção Tecla “ESC” sai do modo de inserção e retorna

ao modo de comandoComandos para sair sem salvar Caso você não queira salvar as alterações no arquivo, utilize:

q! => sai sem salvar.

Editor de texto VIMCopiando e colando textos

Posicione o cursor na linha a ser copiada; Alterne para o modo de comando (ESC); Pressione a tecla “y” duas vezes Posicione o cursor onde deseja colar a linha

copiada Pressione a tecla “p” Cole quantas vezes for necessário digitando a

letra “p”

Editor de texto VIMDeletando linhas inteiras

Posicione o cursor na linha a ser removida Entre em modo de comando Pressione a tecla “d” duas vezes

Editor de texto VIMExercício Crie um novo arquivo no vim com o seguinte comando

$ vim teste1 teste2 Digite um texto em teste1 Copie esse texto para texte2

Editor de texto VIMVim: Importando o resultado de comandos do sistemaO editor vim pode importar arquivos e tambem o resultado de comandos do sistema.Para importar um arquivo:

:r /etc/passwdPara importar o resultado de um comando:

:r ! find /home -user grwO comando acima ira procurar por arquivos pertencentes ao sera inserido diretamente no arquivo sendo editado.

Editor de texto VIMExemplos de operações avançadas Pesquisa de conteúdo no arquivo com a / Abrindo múltiplos arquivos com o comando splitMudando de arquivos com o comando::bn Carregando o conteúdo de outros arquivos no arquivo atual com o comando (:r)

Editor de texto VIMExercício

Crie um novo arquivo com o comando vim com o seguinte conteúdo:

Teste do editor de textos vim. Duplique esta linha 10x Utilizando a substituição automática, substitua

a palavra Teste por TESTE das linhas 5 a 10 Salve o arquivo Utilize o comando grep para buscar a palavra

teste tanto maiúsculas quanto minúsculas

Editor de texto VIMPara saber mais sobre o vim

man vim http://www.infowester.com/linuxvi.php

Gerenciamento de ContasGerenciamento de Usuários, Grupos e Permissões

Trataremos nesta parte de comandos para gerenciamento de contas de usuários, grupos e permissões de acesso à arquivos e diretórios do GNU/Linux

Gerenciamento de ContasComando: adduser

Adiciona um usuário ao sistema Por padrão, seu diretório será /home/<nome_do_usuario> A identificação do usuário (UID) escolhida será

a primeira disponível no sistema especificada de acordo com a faixa de UIDS de usuários permitidas no arquivo de configuração /etc/adduser.conf.

Este é o arquivo que contém os padrões para a criação de novos usuários no sistema.

Gerenciamento de ContasComando: adduser

Principais parâmetros -disable-passwd: Não executa o programa

passwd para escolher a senha e somente permite o uso da conta após o usuário escolher uma senha.

--force-badname: Desativa a checagem de senhas ruins durante a adição do novo usuário. Por padrão o adduser checa se a senha pode ser facilmente adivinhada.

--group: Cria um novo grupo ao invés de um novo usuário.

A criação de grupos também pode ser feita pelo comando addgroup.

-uid [num]: Cria um novo usuário com a identificação [num] ao invés de procurar o próximo UID disponível.

Gerenciamento de Contas e Permissões

Comando: adduser Principais parâmetros -gid [num]: Faz com que o usuário seja parte do grupo [gid] ao invés de pertencer a um novo grupo que será criado com seu nome. Isto é útil caso deseje permitir que grupos de usuários possam ter acesso a arquivos comuns. Caso estiver criando um novo grupo com adduser, a identificação do novo grupo será [num].

Gerenciamento de Contas e Permissões

--home [dir]: Usa o diretório [dir] para a criação do diretório home do usuário ao invés de usar o especificado no arquivo de configuração /etc/adduser.conf. --ingroup [nome]: Quando adicionar um novo usuário no sistema, coloca o usuário no grupo [nome] ao invés de criar um novo grupo. --quiet: Não mostra mensagens durante a operação. --system: Cria um usuário de sistema ao invés de um usuário normal. --shell: Interpretador de comandos do usuário

Gerenciamento de Contas e Permissões

Comando: adduser Exemplos:

# adduser jorge.avila --force-badname # adduser luiz

Após a execução dos comandos, observe os arquivos /etc/passwd e /etc/group Experimente alterar o shell do usuário luiz para /bin/false no arquivo /etc/passwd e tente realizar um logon com esta conta. Dica – utilize o editor vim

Gerenciamento de Contas e Permissões

Comando: addgroup Adiciona um novo grupo de usuários ao sistema

Exemplo: # addgroup financeiro

Observe o arquivo de grupos (/etc/group) e veja qual foi o ID do grupo associado ao usuário

Adicionando um usuário existente a um grupo: # adduser <usuario> --in-group financeiro

Gerenciamento de Contas e Permissões

Comando usermod Modifica características de contas de usuários Parâmetros

-c <comentário> : adiciona um novo valor ao campo comentário do passwd do usuário

-d <home_dir>: o novo diretório home do usuário (com o –m, o conteúdo do diretório atual é movido para o novo)

-e <expire-date>: data para expiração da conta (YYYY-MMDD)

-G: lista suplementar de grupos do usuário – separados por vírgula

-L: bloqueia a conta do usuário -U: desbloqueia a conta do usuário

Gerenciamento de ContasExercício 1 Crie uma nova conta de usuário no sistema com o nome security.team Crie um novo grupo chamado sec Com o comando usermod, altere o grupo do usuário security.team para grupo sec Configure uma data de expiração desta conta

Gerenciamento de Contas e Permissões

Comando: passwd Muda a senha do usuário ou grupo. Um usuário

somente pode alterar a senha de sua conta, mas o superusuário (root) pode alterar a senha de qualquer conta de usuário, inclusive a data de validade da conta, etc. Os donos de grupos também podem alterar a senha do grupo com este comando.

Dica de Segurança: Procure sempre combinar letras maiúsculas, minúsculas, e números ao escolher suas senhas. Não é recomendado escolher palavras normais como sua senha pois podem ser vulneráveis a ataques de dicionários cracker.

Gerenciamento de Contas e Permissões

Comando userdel Utilizado para exclusão de usuários do sistema Caso você queira excluir os arquivos do

diretório home do usuário, especifique o parâmetro “–r”

Gerenciamento de Contas e Permissões

Exercício Crie dois usuários para teste: usuario1 e

usuario2 Exclua o usuario1 sem remover o diretório

home Exclua o usuario2 excluindo seu diretório home Verifique o resultado listando o diretório /home

Gerenciamento de ContasComando groupdel

Utilizado para exclusão de grupos do sistema Exemplo de utilização # groupdel <nome_do_grupo>

Gerenciamento de ContasControle de permissões

O controle de acesso protege o sistema de arquivos do Linux do acesso indevido de pessoas ou sistemas (ex: códigos maliciosos)

Esta proteção torna o sistema mais seguro e confiável, evitando a ocorrência de erros por acidente ou até mesmo por usuários ou programas mal intencionados.

Gerenciamento de ContasDono

É o usuário que criou o arquivo ou diretório A identificação do dono do arquivo é também

chamada de user id (UID) A identificação do usuário e grupo de um

arquivo estão, respectivamente, nos arquivos /etc/passwd e /etc/group

Listando o UID do dono de um arquivo $ ls -n

Gerenciamento de ContasGrupo

Para permitir que vários usuários diferentes tivessem acesso a um mesmo arquivo foi criado o recurso do grupo;

Cada usuário pode fazer parte de um ou mais grupos;

A identificação do grupo é chamada GID O mesmo parâmetro (-n) no comando ls mostra

o GID do arquivo

Gerenciamento de ContasOutros usuários

Categoria de usuários que não são donos ou não pertencem ao grupo do arquivo.

Gerenciamento de ContasCada um destas categorias possuem três tipos básicos de permissão de acesso

Permissão para leitura do arquivo. No caso de diretórios, permite a listagem de seu conteúdo;

Permissão para gravação no arquivo. No caso de diretórios, permite a gravação de arquivos ou outros diretórios;

Permissão para execução do arquivo (programa). No caso de diretório permite que seja acessado através do comando “cd”

Gerenciamento de ContasExemplo

$ ls –l teste1 -rw-r--r-- 1 jorge jorge ... Teste1

Calma.... Vamos por parte!

Gerenciamento de Contas

Gerenciamento de ContasAlterando as permissões com o comando “chmod”

Gerenciamento de ContasUtilizando os octais

0 – nenhuma permissão

1 – apenas execução 2 – apenas gravação 3 – execução e

gravação 4 – apenas leitura 5 – execução e leitura 6 – leitura e gravação 7 – Todos; leitura,

gravação e execução

Chmod 751 <nome do arquivo>Para o proprietário: Tudo; leitura, gravação, execução(7)Para o grupo: execução e leitura(5)Para o publico: apenas execução(1)

Gerenciamento de ContasRepresentação numérica das permissões

Gerenciamento de ContasTabela de comandos e permissões

Gerenciamento de ContasExemplos # chmod u=rwx,g=r,o=r teste.txt

Dono – permissão total Grupo – permissão de leitura Outros – permissão de leitura

# chmod o-r teste.txt Removendo a permissão de leitura dos outros

Gerenciamento de ContasExercício1. Crie o arquivo /tmp/perm.txt com o seu usuário2. Crie um usuário chamado aluno2.3. Utilizando o usuário aluno2 tente ler o arquivo4. Com o seu usuário, remova a permissão de leiturapara “outros”5. Verifique se o aluno2 continua com poder de leiturasobre o arquivo (experimente um “cat” no arquivo)6. Crie um grupo chamado adm e inclua os doisusuários neste grupo7. Verifique se o aluno2 agora pode ler o arquivo.

Gerenciamento de ContasChown

Muda dono de um arquivo/diretório. Opcionalmente pode também ser usado para mudar o grupo.

chown [opções] [dono.grupo] [diretório/arquivo]Opções

-v, –verbose Mostra os arquivos enquanto são alterados.

-f, –supress Não mostra mensagens de erro durante a execução do programa.

-c, –changes Mostra somente arquivos que forem alterados.

-R, –recursive Altera dono e grupo de arquivos no diretório atual e sub-diretórios.

Gerenciamento de Contaschown joao teste.txt - Muda o dono do arquivo teste.txt para joaochown joao.users teste.txt - Muda o dono do arquivo teste.txt para joao e seu grupo para users.chown -R joao.users * - Muda o dono/grupo dos arquivos do diretório atual e subdiretórios para joao/users (desde que você tenha permissões de gravação no diretórios e sub-diretórios).