















































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Neste documento, aprenda a trabalhar com o sistema de arquivos do linux, incluindo a estrutura de diretórios, montagem, configuração do sshd e compartilhamento de arquivos usando nfs. Ensaie com exemplos práticos e conheça as características do sistema de arquivos ext2.
Tipologia: Notas de estudo
1 / 55
Esta página não é visível na pré-visualização
Não perca as partes importantes!
-ChangeLog v1. -Introdução -Objetivos -Listas de Discussões de Bauru -Recapitulando o módulo Básico oHistória do Linux (não será revisado) oInstalação do Conectiva, do Slackware, via Rede (não será revisado) oComandos Básicos do Sistema §Man §Projeto LDP, help, info (não será revisado) §Logout
§Shutdown -r now § Su §Ls (-la) §Cd (deslocamento relativo x absoluto) §Cp §Mv §Alias §Clear §Mkdir (-p) §Rmdir (-p) §Rm (-rf) §Who (w, who is god, whoami) §Df §Free §Cat /proc/cpuinfo §Setterm §Tput §Uptime §Arquivos da Inicialização §Variáveis §Variável PS §Arquivo /etc/motd §Arquivo /etc/issue e /etc/issue.net §Ps (aux) §Kill §Killall §Sinais (1, 9, 15) §Touch §Find §Locate §Top §Vi (:w :x :q :q! /) §Background (&) §Jobs §Fg §Ln (-s) §Chmod (ugo +rwx) §Umask §Chown (user:group) §Chgrp §Caracteres Especiais (~,[],*,?) §Home do Usuário §Adicionando um Grupo §Adicionando um Usuário §Senhas SHADOW §Arquivo /etc/passwd §Arquivo /etc/group §Porque saber editar manualmente usuários e grupos?
oPersonalizando o kernel -Ferramentas Básicas de Rede oIfconfig oRoute oNetstat oPing oTraceroute oNslookup oEditando os arquivos de configuração manualmente -Compactadores e Empacotadores de Arquivos oGzip oZip oBzip oCompress oTar -Agendamento de Tarefas oCron oAt -Entendendo o Super Daemon Inetd o/etc/inetd.conf o/etc/hosts.allow o/etc/hosts.deny -Configurando o boot da máquina: /etc/lilo.conf -Instalação e compilação de aplicativos oO gcc oO comando ./configure oMódulos do perl oO comando make oO comando make install oQuando ocorrem os problemas...
oGerenciamento de pacotes RPM §Instalando §Removendo §Atualizando §Pesquisando §Erros Comuns -Configurando o NFS oEscolhendo os diretórios a compartilhar oAtualizando tabela de arquivos compartilhados oPortmap oAcionando o Portmap oAcionando o NFS oVerificando arquivos compartilhados pela máquina oVerificando clientes que estão acessando os arquivos compartilhados -SAMBA
oEntendendo o Funcionamento do NetBIOS oEntendendo o Funcionamento do Samba oConfigurando um servidor SAMBA oCompartilhando Diretórios através do SAMBA oAcessando arquivos compartilhados através do Linux oFazendo uma máquina Windows se autenticar no Linux -Configurando o SSHD oRetirando a compatibilidade com a Versão 1 oRetirando o uso da diretiva UseLogin oAumentando a chave criptográfica oPermitindo ao root se logar remotamente -Configurando o ProFTPd oHabilitando usuário anonymous oMudando informações do servidor oDiretivas de configuração -Configurando o BIND oEntendendo o DNS oConfigurando uma Zona de Exemplo oConfigurando uma Zona Reversa de Exemplo oOs arquivos de Zonas -Configurando o Apache oSobre oPorque utiliza-lo oExemplo de configuração -Configurando o PostFix oEntendendo o servidor de Emails oPorque utilizar postfix oDiretivas de configuração -Segurança oQuesitos para um sistema seguro oOnde se atualizar oMontando um firewall linux §Entendendo o iptables §Regras de entrada, saída e passagem de pacotes §Tabelas do iptables §Proibindo protocolos §Proibindo portas e tipos de mensagens §Proibindo flags TCP §Proibindo estados de pacotes §Limitando as conexões
As mudanças da versão 1.0 para a versão 1.5 são: -Corrigido erro pequeno na parte de While -Incluído o comando tput -Incluído o comando setterm
Os objetivos deste treinamento não são os de tornar seus adeptos especialistas
avançados no sistema operacional, e sim usuários e administradores avançados. Isto quer dizer que eles dominaram algumas características do sistema, mas devem estudar e se aprofundar muito para se tornarem especialistas e profissionais no mesmo. Espero converter os usuários que leiam e façam o treinamento e mostrar-lhes quão fácil é entrar no mundo LINUX. Percebam que a apostila é técnica, não sendo altamente instrutiva isoladamente, por isso, façam os exemplos desta e vejam os manuais para maiores entendimentos. Ela é apenas um complemento do treinamento completo, mas pode facilmente se tornar um curso através de um documento para as pessoas mais esforçadas e interessadas. NÃO ficarei preso a uma única distribuição, mas gostaria de lembrar que pessoalmente eu utilizo o FwSec Linux, um Slackware Linux modificado e com a segurança reimplementada pela minha empresa (Firewalls Security), portanto, todos os exemplos mostrados serão em Conectiva Linux (no qual sou certificado) e Slackware Linux. Também NÃO mencionarei o uso de Configuradores Gráficos (tais como LinuxConf e WebMin). Os exemplos aqui apresentados são EXEMPLOS, embora as configurações funcionem podem não ser as ideais para um servidor e devem ser revistas e acrescentadas. Esta apostila PODE e DEVE ser distribuída livremente, desde que não seja alterada. Esta pode ser encontrada online em http://www.firewalls.com.br/cursos/linux.
Estou tentando formular algumas listas para discussão sobre o sistema operacional
Linux em Bauru. Atualmente, existem as seguintes listas criadas: senac cti tcpdump seguranca linux Para se cadastrar acesse: www.firewalls.com.br/mailman/listinfo/nomeDaLista <http:// www.firewalls.com.br/mailman/listinfo/nomeDaLista> Coloque seu email e uma senha e você receberá uma mensagem com instruções. O objetivo destas listas é ter discussões de qualidade, portanto serão monitoradas e assuntos infundados serão proibidos.
Comando que nos mostra o manual de um outro comando. Uso: man [seção] comando Observe que seção é opcional, mas pode ser: 1à Comandos do usuário 2à Chamadas ao sistema 3à Biblioteca de funções 4à Dispositivos 5à Formatos de arquivos 6à Jogos 7à Informações Gerais 8à Administração do sistema
Exemplo de uso: man 1 ls Utilize /palavra para procurar e q para sair.
- Logout Fecha a shell do usuário. Este comando é utilizado quando se termina sua sessão ou para se trocar de usuário.
- Rm (-rf) Comando utilizado para apagar arquivos. Observe que o rm simplesmente não apaga diretórios. Sua opção -r indica para apagar recursivamente, ou seja, ir apagando todos os arquivos em subdiretórios e inclusive os próprios diretórios. A opção -f força apagar, e não emite mensagens de erro caso não exista um arquivo. Ex: rm -rf arquivoQueNaoExiste Não acontecerá NADA. Nenhuma mensagem de erro será informada. - Who (w, who is god, whoami) O commando who e w listam os usuários que estão logados na máquina. O w tem uma saída um pouco mais complexa, mostrando mais informações. O comando who is god é uma sátira e retorna o nome de seu usuário. O comando whoami (pode ser escrito who am i) também retorna o nome de seu usuário e é utilizado para saber com qual usuário você está logado, muito usado quando se utiliza o su e acaba se confundindo quem é você. - Df Mostra informações de sistemas de arquivos montados (mesmo CDRom e Disquete). - Free Mostra informações de memória (swap inclusive). - Cat /proc/cpuinfo Informações muito completas de seu processador. - Setterm Este comando serve para modificar configurações do terminal do Linux, tais como cor de fundo e cor da letra. Ex: setterm -background green --> Fundo Verde setterm -foreground yellow --> Letra "amarela". O amarela está entre aspas devido ao fato de que a cor não parece ser amarelo não. OBS: Este comando mudará a cor a partir do momento em que ele for dado, ou seja, você precisa imprimir algo na tela ou dar um clear para realmente mudar a cor.
Utilizaremos este comando para posicionar o cursor na tela, onde quisermos. Ele será muito útil quando estivermos construindo shell scripts. Ex: tput cup 5 10 à Posiciona o cursor na linha 5 coluna 10.
- Uptime Mostra a quanto tempo o sistema está ligado. Os maiores uptimes da internet são com máquinas UNIX. - Arquivos da Inicialização Alguns arquivos são executados quando o sistema reinicializa. O que nos
será conveniente falar por agora será o arquivo /etc/rc.d/rc.local (todas as distribuições devem tê-lo implementado). Este arquivo será o último a ser executado quando da inicialização do sistema. Diversos arquivos são executados no processo de entrada de um usuário no sistema. São eles: .bashrc .profile .bash_login Os 3 se localizam no HOME do usuário E: /etc/bashrc /etc/profile Observe que enquanto os 3 primeiros são exclusivos dos usuários (cada usuário pode ter suas configurações), os últimos 2 são globais a todos os usuários que entrarem no sistema. Não recomenda-se alterar o arquivo /etc/profile já que este é de configurações e variáveis.
- Variáveis Variáveis nada mais são do que espaços na memória que armazenam
valores. O linux possui variáveis do próprio sistema, que armazenam valores de configurações ou informações da máquina. Para vê-las utilize o comando set. Para darmos um valor a uma variável e torna-la global ao sistema, fazemos export variável=valor. Para retirarmos uma variável fazemos unset variável.
- Variável PS Esta variável guarda os valores para o PROMPT do Linux. Observe que
estes valores podem ser variáveis interpretadas pela SHELL, e por default o são, ou seja, se você utilizar uma shell que não a shell BASH, eles podem ficar sem sentido. A variável PS1 é uma variável normal do sistema, qualquer valor que for dado a ela irá ficar no prompt.
1-) SigHUP à Manda a aplicação reiniciar 9-) SigKILL à Manda o kernel tirar a aplicação da lista de processos ativos (mata mesmo!) 15-) SigTERM à Manda um sinal para que a aplicação termine normalmente Os sinais são utilizados para comunicações INTER-PROCESSOS, ou seja, quando um processo deseja indicar algo para outro processo. Neste caso, o processo kill (killall é a mesma coisa), envia o sinal que pedirmos para a aplicação. Existem outros sinais (como SigINT) que são utilizados pelo sistema. Para visualizá-los utilize o comando kill -l.
- Touch Cria um arquivo texto vazio. Muito interessante na hora de se testar alguma coisa. Uso: touch nomeDeArquivoaCriar nomeDeArquivoaCriar ... Pode-se criar diversos arquivos de uma única vez. - Find Busca arquivos. Muito avançado. Uso: find DirAProcurar opções Exemplos de uso: find / -name Rodrigo.tar à Procura a partir da raiz (no sistema todo) o arquivo chamado Rodrigo.tar find /home -exec grep "teste" {} ; -exec ls -la {} : à Procura a partir do diretório /home arquivos com o conteúdo teste (grep teste) e lista este arquivo (ls -la). find /usr -type l -ok rm -rf {} ; à Procura no diretório /usr links (- type l) e caso encontre, confirma se deve ou não apagar (-ok rm -rf). Consulte o manual para informações mais interessantes. - Locate Busca arquivos, mas utiliza uma base de dados como padrão, o que o torna muito rápido. Cuidado!! Atualize sempre sua base de dados, ou irão aparecer arquivos que já foram removidos em suas buscas. Outro problema do locate é o fato de que ele busca qualquer ocorrência da palavra a buscar, ou seja, se você fizer locate a, ele irá listar TUDO no sistema que contém a palavra a. Para atualizar sua base de dados utilize: updatedb Para buscar utilize: locate oqbuscar - Top Método interessante de se vizualizar os processos ativos na máquina.
Use: M --> Ordenar por consumo de memória P --> Ordenar por consumo de CPU
- Vi (:w :x :q :q! /) Ótimo editor de textos que recomenda-se e muito saber. As opções vistas
foram: ØModo Comando, Fim de Linha e de Edição Ø:w à Salva arquivo Ø:x à Salva e sai Ø:q à Sai quando você não alterou nada Ø:q! à Sai sem salvar Ø/palavra à Procura palavra Øn à Procura pela próxima ocorrência de palavra
- Background (&) O linux possui uma opção interessante que é a de mandar processos para o segundo plano, liberando assim o ambiente do usuário. Pode-se fazer isso através do sinal & após qualquer comando. - Jobs Lista os processos que estão em segundo plano, retornando o número do processo de segundo plano, que deverá ser utilizado para traze-lo de volta. - Fg Comando que trás de volta um processo do segundo plano. Uso: fg numeroProcessodeSegundoPlanoRetornadoPeloJobs - ln (-s) Este comando cria um link (atalho) entre diretórios e arquivos. Um link simbólico (opção -s) nada mais é do que um arquivo no HD que aponta para a área onde está o arquivo original. Se o original é apagado, o link fica "quebrado". Já um link direto (apenas ln) dá um outro nome para a mesma área do HD. Como um backup contra remoção indevida, no entanto usa-se o mesmo espaço do HD, referenciando-no de duas maneiras diferentes. Crie e compare. Um link direto não pode ser feito entre diretórios. Uso: ln -s Original Link ln Original Link - Chmod (ugo +rwx) Comando que muda as permissões de um arquivo. Estas podem ser vistas através do comando ls -l. A esquerda dos arquivos aparecerá uma cadeia de caracteres de difícil compreensão inicial, mas prestem atenção: PrimeiroCaractere à Indica o tipo de arquivo, pode ser:
- Chgrp Utilizado para mudar apenas o grupo dono de um arquivo. Uso: chgrp novogrupo ArquivoOuDiretório - Caracteres Especiais (~,[],,?)* São também conhecidos como METACARACTERES. Os mais comuns e utilizados são: * à Simboliza TUDO ? à Simboliza QUALQUER CARACTERE ~ à Simboliza o HOME do usuário Corrente [AB]* à Qualquer arquivo (*) começado com A ou com B. - Home do usuário Diretório que pertence ao usuário, onde ele pode tudo. O comando cd isolado leva o usuário até este diretório. Ao logar no sistema, o usuário cai também em seu home. - Adicionando um Grupo Um grupo nada mais é do que a união de diversos usuários com as mesmas
características. Por exemplo, poderíamos ter um grupo estudantes ou alunos. Para adicionarmos este grupo, devemos utilizar o comando: groupadd alunos No arquivo /etc/group será adicionada uma entrada alunos, e será dado um GID (identificador de grupo) a este grupo.
- Adicionando um Usuário Qualquer pessoa que for utilizar o linux deve necessariamente possuir um usuário válido na máquina. Lembrando que NÃO devemos utilizar o root a menos que necessário, esta tarefa é importantíssima mesmo para usuários caseiros. Adicionando: useradd rodrigo -g alunos Adicionamos o usuário rodrigo no grupo alunos. Observe que a opção -g nomegrupo não se faz necessária, e caso seja omitida, teremos comportamentos diferentes em algumas distribuições: RedHat e familiares (incluindo Conectiva): Será criado um grupo com o mesmo nome do usuário e este será adicionado neste grupo Slackware: O usuário será adicionado em um grupo chamado users Isto ocorre devido a não padronização deste ato e ao fato de um usuário NECESSARIAMENTE pertencer a algum grupo - Senhas SHADOW O esquema de senhas chamado SHADOW foi criado devido ao fato de o
Linux (e os Unix-Like da vida) utilizarem em suas senhas um método de criptografia
chamado DES (Data Encryption Standard). Este método é fraco (utiliza chaves de apenas 64 bits) e pode ser facilmente quebrado (Veja o livro Cracking DES para entender melhor sobre este assunto). Como o arquivo /etc/passwd necessita ter permissão de leitura para todos, qualquer usuário facilmente conseguiria obter a senha de ROOT do sistema. Com isso criaram o SHADOW, onde as senhas criptografadas com o DES ficam no arquivo /etc/shadow que só pode ser visto pelo root. Sobra então no arquivo /etc/passwd apenas um * ou! no lugar da senha criptografada do usuário. Todas as distribuições linux trazem o SHADOW por padrão.
- Arquivo /etc/passwd Este arquivo contém os usuários cadastrados na máquina e informações sobre eles. Sua sintaxe é: login:UID:GID:Descrição:Home:Shell Onde: ·login à Nome do usuário na máquina ·UID à Identificador do usuário. O Linux utiliza este número para dar ou tirar permissões. Pode ser repetido entre usuários. ·GID à Identificador do grupo principal do usuário. ·Descrição à Qualquer coisa, se for omitido, deve-se deixar ::. Geralmente coloca-se nome e cargo do usuário ·Home à Diretório pessoal do usuário. Não necessariamente, mas recomenda-se que ele fique no /home e tenha o mesmo nome do usuário. Ex: Usuário: Rodrigo Home: /home/Rodrigo ·Shell à Shell que o usuário irá utilizar para se logar no sistema. Use /bin/false caso o usuário não deva logar. E /bin/bash caso deva. OBS: Deve ter ficado na cabeça do leitor atento o fato de CASO O USUÁRIO NÃO DEVA LOGAR. Mas quando isto acontece? Digamos que temos uma aplicação que deve ser executada com as permissões de um usuário. Criamos um para ela, mas este não é um usuário válido, como minha aplicação iria entrar na máquina? Este é um caso. - Arquivo /etc/group Similarmente ao /etc/passwd este arquivo possui as configurações dos grupos (o /etc/passwd possui dos usuários) Sua sintaxe geral é:
else echo ´ Valor != 1´ à Agora esta certo fi
oComando de loop oA variável irá assumir a cada itereção do loop um valor da lista oEx: for nome in Rodrigo Alberto Gilberto do echo $nome done oIrá ter a saída: Rodrigo Alberto Gilberto
·Cria-se um arquivo chamado /tmp/nomes.txt ·Neste arquivo coloca-se o nome dos 1000 usuários. ·Faz-se o seguinte script: ofor user in cat /tmp/nomes.txt
odo §useradd $user odone ·Observe o cat /tmp/nomes.txt
no lugar da lista. A crase faz com que o comando seja executado. ·O comando CAT lista o conteúdo de um arquivo, no caso nomes.txt que fica no lugar da LISTA. ·A variável user assume valor por valor desta lista a cada iteração e é utilizado o comando useradd para adicionar o usuário. ·Também pode ser escrito assim: Øfor user in cat /tmp/nomes.txt
; do useradd $user; done
§Lembre-se que o arquivo .xinitrc localizado no home do usuário é executado assim que a interface gráfica abre. #!/bin/bash echo "Escolha a interface" echo " 1- KDE" echo " 2- Wmaker" echo " 3- Gnome" read iface if [ $iface = "1" ] then kde
exit fi if [ $iface = "2" ] then echo "wmaker" > ~/.xinitrc fi if [ $iface = "3" ] then echo "gnome" > ~/.xinitrc fi startx OBS: Observe o echo "gnome" > ~/.xinitrc, utilizei o metaractere ~ para indicar o home do usuário, assim independente do usuário que executar, o script funcionará. O comando exit serve para fechar o script, porque eu não desejo que o startx seja executado caso kde tenha sido. Coloquei um único startx ao final do script, ao invés de um por if. Utilizei o comando read para acessar um valor digitado pelo usuário e armazenei este valor na variável iface, que não precisa ser previamente declarada.
- Case Usado quando se necessita de muitos If´s. Funciona assim: case $Variável in valor) comando comando comando ;; valor2) comando comando ;; *) comando comando ;; esac
Exercício: Reescrever o script de abrir interface usando o case
- While Faz um loop que só sairá quando encontrar o comando break ou a condição for FALSA. Sintaxe: while Condição