O documento discute operações de gerenciamento de redes e sistemas Linux, incluindo: (1) a criação de diretórios e arquivos, cópia e remoção de diretórios, e comandos find, grep, head e tail; (2) o uso do comando tar para compactar e descompactar arquivos; e (3) comandos para criar, modificar e remover usuários e grupos no sistema.
3. Exercicio
Crie dos diretórios direrotio1 e diretorio2
Dentro do diretorio1 crie dois arquivos arquivo1 e
arquivo2
Copie o diretorio1 para dentro do diretorio2
Exclua o diretorio2
4. Operações avançadas
find
grep
head
tail
Redirecionamento de E/S
Pipe
Criação de links
Empacotamento, compactação e descompactação de
arquivos
5. Operações Avançadas
O 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...
6. 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
8. Operações Avançadas
Comando “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>
11. Operações Avançadas
Comando “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
12. Operações Avançadas
Se 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.
13. Operações Avançadas
Exemplo:
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
14. Operações Avançadas
Dutos 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.
15. Operações Avançadas
Dutos ou pipes ( | )
Exemplos
$ cat /etc/passwd | grep <seu usuario>
ls /etc | more
cat /etc/passwd | sort
16. Operações Avançadas
Empacotamento, compactação e descompactação de
arquivos
O 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.
18. Operações Avançadas
O 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
20. Operações Avançadas
O 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
21. Operações Avançadas
Mas 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
22. Operações Avançadas
Observe 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 gzip
Exemplo:
$ tar –zcvf backupEtc.tar.gz /etc
23. Exercício 1
Crie 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”.
24. Exercício 2
Crie um diretório para armazenar o backup compactado
do arquivo /home/aluno
Após isso descompacte esse mesmo diretório e leia o
mesmo com os comandos que você conhece
25. Exercício 3
Crie dois diretório sendo que um deles serve para
armazenar o backup compactado do arquivo /home
Após isso descompacte dentro do dentro do segundo
diretorio
26. Editor de texto VIM
O 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 funcionalidades
Após um tempo, o vim passou a ser chamado de vi
improved (vi melhorado)
Atualmente, é um dos editores mais utilizados no
mundo Unix
27. Editor de texto VIM
O 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.
28. Editor de texto VIM
Operaçõ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
29. Editor de texto VIM
Operaçõ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é).
30. Editor de texto VIM
Comandos 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.
31. Editor de texto VIM
Modos edição:
“i” - entra em modo de inserção
Tecla “ESC” sai do modo de inserção e retorna ao modo de
comando
Comandos para sair sem salvar
Caso você não queira salvar as alterações no arquivo,
utilize:
q! => sai sem salvar.
32. Editor de texto VIM
Copiando 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”
33. Editor de texto VIM
Deletando linhas inteiras
Posicione o cursor na linha a ser removida
Entre em modo de comando
Pressione a tecla “d” duas vezes
34. Editor de texto VIM
Exercício
Crie um novo arquivo no vim com o seguinte comando
$ vim teste1 teste2
Digite um texto em teste1
Copie esse texto para texte2
35. Editor de texto VIM
Vim: Importando o resultado de comandos do sistema
O editor vim pode importar arquivos e tambem o resultado de comandos do sistema.
Para importar um arquivo:
:r /etc/passwd
Para importar o resultado de um comando:
:r ! find /home -user grw
O comando acima ira procurar por arquivos pertencentes ao sera inserido diretamente
36. Editor de texto VIM
Exemplos de operações avançadas
Pesquisa de conteúdo no arquivo com a /
Abrindo múltiplos arquivos com o comando split
Mudando de arquivos com o comando:
:bn
Carregando o conteúdo de outros arquivos no arquivo
atual com o comando (:r)
37. Editor de texto VIM
Exercí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
38. Editor de texto VIM
Para saber mais sobre o vim
man vim
http://www.infowester.com/linuxvi.php
39. Gerenciamento de Contas
Gerenciamento 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
40. Gerenciamento de Contas
Comando: 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.
41. Gerenciamento de Contas
Comando: 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
42. 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].
43. 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
44. 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
45. 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
46. 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
47. Gerenciamento de Contas
Exercí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
48. 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.
49. 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”
50. 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
51. Gerenciamento de Contas
Comando groupdel
Utilizado para exclusão de grupos do sistema
Exemplo de utilização
# groupdel <nome_do_grupo>
52. Gerenciamento de Contas
Controle 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.
53. Gerenciamento de Contas
Dono
É 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
54. Gerenciamento de Contas
Grupo
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
56. Gerenciamento de Contas
Cada 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”
60. Gerenciamento de Contas
Utilizando 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)
63. Gerenciamento de Contas
Exemplos
# 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
64. Gerenciamento de Contas
Exercício
1. Crie o arquivo /tmp/perm.txt com o seu usuário
2. Crie um usuário chamado aluno2.
3. Utilizando o usuário aluno2 tente ler o arquivo
4. Com o seu usuário, remova a permissão de leitura
para “outros”
5. Verifique se o aluno2 continua com poder de leitura
sobre o arquivo (experimente um “cat” no arquivo)
6. Crie um grupo chamado adm e inclua os dois
usuários neste grupo
7. Verifique se o aluno2 agora pode ler o arquivo.
65. Gerenciamento de Contas
Chown
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.
66. Gerenciamento de Contas
chown joao teste.txt - Muda o dono do arquivo teste.txt
para joao
chown 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).