Desvendando o Mundo do GNU/Linux Headline Animator

terça-feira, 10 de janeiro de 2012

Certificação LPI

Por: Fagner Oliveira










 Cenário Mundial

 O sistema operacional Linux está presente em 67% dos servidores na internet e nos 208 maiores computadores do mundo.
É um mercado de 12 bilhões de dólares que precisa ser explorado por profissionais habilidosos e competentes capazes de criar, manter e administrar estes sistemas computacionais.
Há falta de profissionais Linux no mercado de trabalho, pois o sistema cresce em uma velocidade impressionante.




 Cenário Brasileiro


 Cresce a demanda de profissionais Linux e a procura por centros de treinamento.

 Base instalada de Linux, cresce 30% ao ano e já está em 64% das empresas brasileiras, um crescimento superior a 50% em relação a 2004.




Motivação



 Criar reconhecimento na indústria.

 Criar um caminho a ser percorrido por profissionais de TI.

 Providenciar um mecanismo organizacional para os Centros de Treinamento.
 Fortalecer o Marketing.

 Contra-atacar o argumento que "Não há suporte para Linux".

 Recrutar novos usuários de Linux.

 Auxiliar no processo de contratação.




 Por que ser um certificado LPI?



 Comprovar sua competência.

 Ter vantagem competitiva diante de um empregador em potencial.

 Estabelecer-se como consultor independente de sucesso.

 Diversificar e definir sua carreira.

 Ter um diferencial de renome no seu currículo.

 Aumentar sua respeitabilidade perante o mercado.

 Garantir uma promoção no trabalho.

 Aprofundar seus conhecimentos em administração de redes e sistemas operacionais.

 Abrir novas oportunidades de negócio em SL/CA.

 Prepara-se para concursos que exigem conhecimento em Linux.

 Aumentar suas possibilidades de empregabilidade.

 Oferecer novas soluções para potenciais clientes.

 Esta entre as 10 mais procuradas do mundo por profissionais de TI, segundo o site    especializado no assunto certicities.com




Certificações em Linux




 LPI -- Linux Professional Institute (LPIC-1, LPIC-2, LPIC-3)


RedHat -- (RHCSA, RHCE, RHCT)

Novell -- (CLDA, NCLE, NCLA)

Comptia -- (Linux +)

Mandriva -- (MCA, MCB, MCU)

Ubuntu -- (Certified)




Sobre o LPI




O Linux Professional Institute, estabeleceu-se como uma organização internacional sem fins lucrativos, em 1999, pela comunidade Linux, e desde então, desenvolve de forma acessível a todos   um programa de certificação reconhecido  internacionalmente por empresas, empregadores e profissionais de TI.




A certificação LPIC


Elaborada para certificar a competência de profissionais de TI em administração de sistema Linux.

É neutra em termos de distribuição, seguindo o LSB (Linux Standard Base).

Acessível e disponível em milhares de centros de exames ao redor do mundo.


Formulado por uma comunidade de profissionais Linux, voluntários, fornecedores e educadores. 

Independente de instituição de treinamento: incentiva formas plurais de preparação para os exames.

Relevante Milhares de pesquisas para identificar as habilidades que necessitam ser verificadas.

Apoiada e patrocinada por grande número de empresas e projeto de Linux.

Uma certificação que a comunidade Linux respeita e se orgulha.

Desafiadora se você não conhece os temas não será aprovado.




Programa de certificação


O programa LPIC consiste em três níveis de certificação.

As atividades adequadas  a cada nível são determinados por uma pesquisa JTA (Job Task Analysis).

Utiliza processos psicométricos, para assegurar sua relevância e alta qualidade.
 
      Junior Level Linux                       Advanced Level Linux                 Senior Level Linux
      Professional                                   Professional                                    Professional





Junior Level Linux Professional




O primeiro programa de certificação de TI para ser profissionalmente credenciado pela Comissão Nacional de Agências de certificação NCCA
  • Status: Primeiro de Janeiro publicou 11, 2000; última revisão publicada abril 2009
  • Pré-requisitos: Nenhum
  • Requisitos: Passar nos Exames 101 e 102





Visão geral



Para passar de nível 1, alguém deve ser capaz de:
  1. Trabalhar na linha de comando Linux
  2. Executar tarefas de manutenção fácil: ajudar os usuários, adicionar usuários a um sistema maior, backup e restauração de desligamento e reinicio
  3. Instalar e configurar uma estação de trabalho (incluindo X) e conectá-la a uma LAN, ou um PC independente para a Internet.




Advanced Level Linux Professional



  • Status: Publicado pela primeira vez 29 de novembro, 2001; última revisão 01 de abril de 2009.
  • Pré-requisitos: Você deve ter um papel activo certificação LPIC-1 para receber a certificação LPIC-2, mas os exames LPIC-1 e LPIC-2 podem ser feitos em qualquer ordem.
  • Requisitos: Passar nos exames 201 e 202





Visão Geral


Para passar de nível 2 alguém deverá ser capaz de:
  • Administrar um site de pequeno e médio porte
  • Planejar, implementar, manter, manter consistente, seguro, e solucionar problemas de uma pequena rede (MS, Linux) mista, incluindo a:
    • LAN servidor (samba)
    • Internet Gateway (firewall, proxy, email, notícias)
    • Internet Server (servidor web, servidor de FTP)
  • Supervisionar assistentes
  • Orientar a gestão em automação e compras




Senior Level Linux Professional


A certificação LPIC-3 é o culme do programa de certificação LPI.
LPIC-3 é projetado para o nível corporativo Linux profissional. O programa foi desenvolvido com o conselho de centenas de profissionais Linux e algumas das empresas do mundo de tecnologia de ponta. Também representa o maior nível de profissional, certificação de distribuição neutra Linux dentro da indústria.
O programa LPIC-3 é composto de um exame único para LPIC-3 "core" designação. Uma série de "especialidade" exames são propostas como designações adicionais em cima do núcleo do LPIC-3.
Especialidades propostas incluem:
  • ambiente misto
  • segurança
  • alta disponibilidade e virtualização
  • web e intranet
  • e-mail e mensagens





Como se preparar


O LPI não exige nenhum tipo específico de preparação.

O candidato é livre para escolher como se preparar.

Auto estudo.

Realizar um treinamento direcionado.

Fazer simulados disponíveis na internet.

Pesquisar e aprender por meio de how-to.

Participar de listas de discussão.

Conversar com que já foi aprovado.

Procurar um bom livro.






Como realizar os exames



Existem duas maneiras de realizar o exame:


Papel: Feita pelo próprio LPI, cuja sede fica no Canadá.
Prazo máximo para que o candidato saiba o resultado é de 4 semanas.
Custo reduzido em relação as provas eletrônicas e a possibilidade de realizar os exames em português (disponível para as provas 101, 102, 201, 202)


Prova eletrônica: São realizadas nos centros VUE e Prometric e têm a vantagem de fornecer o resultado logo após o término do exame.

























sábado, 7 de janeiro de 2012

Dicas de administração do sistema Part Final

Por: Fagner Oliveira








Gerenciamento de processos:

Gerenciamento de processos é uma das funções básicas de qualquer administrador, um processo não é nada mais que um aplicativo ou serviço ativo, que consome processamento e recurso do sistema. Um determinado serviço pode deixar de responder, ou simplesmente um aplicativo entrar em loop consumindo assim cada vez mais memória e processamento, para isso temos as ferramentas necessárias para gerenciamento  de processos.


ps: usado para listar os processos ativos e todos os programas e serviços abertos

ps aux: usado para mostrar uma listagem completa, contendo os processos de todos os usuários.

ps axjf: usado para mostrar os processos em uma lista mais organizada.


Existe a possibilidade de fazer uma filtragem usando o "grep" e "|" (pipe), como em:

# ps aux | grep  apache

Nesse exemplo estou fazendo uma filtragem onde só será mostrado os processos referente ao meu servidor Web.

Existem duas formas de finalizar de maneira correta os processos, a primeira é usando o comando "kill", a segunda é usando o "killall".


kill: Como dito anteriormente o comando kill é usado para finalizar os processos de maneira correta, sua sintaxe mais básica é:

comando: opções: argumento

Ex: kill -9 1948

Aqui nesse exemplo temos:

-9 ----> Finaliza o processo na marra sem dar chance ao processo para salvar suas informações.

1948 ----> O pid do processo (pid é um número que identifica os processos, e é obtido com o comando "ps")

killall: A diferença desse comando para o "kill" é que em vez de você especificar o "pid", você especifica o nome do processo, como em:

# killall gdm

Aqui estou simplesmente finalizando meu ambiente gráfico.

Há também a possibilidade do uso do comando "pstree" para fazer uma listagem mais profunda, combinado com a opção "-p" me traz  o "pid" de cada processo, como em:

# pstree -p

init(1)─┬─NetworkManager(928)───{NetworkManager}(929)
        ├─accounts-daemon(2033)───{accounts-daemo}(2038)
        ├─acpid(1070)
        ├─atd(1075)
        ├─avahi-daemon(926)───avahi-daemon(927)
        ├─bluetoothd(1759)
        ├─bonobo-activati(2337)─┬─{bonobo-activat}(2341)
        │                       └─{bonobo-activat}(2345)

Os valores entre parênteses é justamente o "pid"

top: esse comando é usado para mostrar uma lista de processos de uma forma contínua. Vejamos algumas opções do top:

g ----> usado para organizar a lista, colocando os processos que estão consumindo mais processamento nas primeiras colunas.

k ----> usado para finalizar um processo, logo após tem que ser especificado o "pid" do processo em questão, caso deseje finalizar o processo na marra, assim como o "kill -9", digite "9", quando ele perguntar qual o sinal que será enviado ao processo.

q ----> volta para o terminal




sexta-feira, 6 de janeiro de 2012

Dicas de administração do sistema Part 8

Por: Fagner Oliveira








Grupos e permissões de acesso:

Além das permissões referente aos usuários, temos também as configurações dos grupos, que permitem organizar os usuários, definindo as permissões de acesso de uma forma mais eficaz.

Imagine um servidor compartilhado entre vários usuários, onde apenas três deles, "joao, paulo, tiago", devem ter acesso a pasta "/var/www/intranet", que contém os arquivos do site interno da empresa.

A forma mais simples de fazer isso é criar um grupo, adicionar os usuários ao grupo e ajustar as permissões da pasta para que o grupo tenha permissão de escrita. Para adicionarmos um grupo no sistema, usamos o comando "groupadd", como em:

# groupadd intranet

Agora para adicionar os usuários a esse grupo usamos o próprio comando "adduser", seguido pelo login e o grupo ao qual ele será adicionado, como em:

# adduser joao intranet

Vale lembrar que no CentOS e nas distribuições derivadas do RedHat, o comando "adduser" é um link para o comando "useradd", portanto não suporta essa opção. Nesse caso usamos o comando "usermod -a -G", seguido do usuário e grupo respectivamente, como em:

# usermod -a -G joao intranet

Após adicionarmos os usuários ao grupo, falta ajustar as permissões de acesso, que pode ser realizado com o comando "chmod" e "chown". O primeiro comando permite ajustar arquivos e pastas, o segundo permite transferir a posse, ou seja, mudar o dono de um arquivo ou pasta.

Como foi dito anteriormente as permissões são agrupadas em três atributos: (leituara, gravação e execução). Eles são representados pelas letras (r, w, x).

As permissões são definidas da seguinte forma: dono, grupo (incluí todos os usuários pertencente ao grupo), outros (são os que não são dono e nem participam do grupo).

Digamos que a pasta "/var/www/intranet" tenha sido criada pelo root, listando suas permissões de acesso com o comando "ls -l" temos:

drwxr-xr-x 2 root  root  4096 Jan  06  13:25  intranet

explicação:

d ----> indica que se trata de um diretório
rwx ----> indicam as permissões para o dono da pasta
r-x ----> indicam as permissões para todos os usuários que pertencem ao grupo
r-x ----> indicam as permissões para aqueles que não são donos e que não estão participando de nenhum grupo.

Nesse exemplo o root tem acesso completo a pasta (ler, gravar, executar), enquanto que os usuários pertencente ao grupo do root têm apenas acesso (ler, executar) e outros também têm apenas acesso (ler, executar).

Bom para que os usuários do grupo intranet possam alterar o conteúdo da pasta, é necessário mudar o dono do grupo de "root" para "intranet" como em.

# chown -R root:intranet /var/www/intranet

A opção "-R" é o modo recursivo, pois fará com que as alterações sejam aplicadas em todas as subpastas.

Agora veja como ficou as permissões do exemplo anterior:



drwxr-xr-x 2 root:intranet  4096 Jan  06  13:25  intranet

Agora basta apenas alterar as permissões de acesso para o grupo, para isso utilizamos o comando "chmod",como em:

# chmod -R g+w /var/www/intarnet


A opção "-R" é o modo recursivo, pois fará com que as alterações sejam aplicadas em todas as subpastas.

Caso queira remover a permissão de escrita basta executar o "chmod" assim:

# chmod -R g-w /var/www/intranet

Parâmetros do chmod

-R ----> Modo recursivo, altera as permissões de todo conteúdo da pasta
-u ----> Permissão para o dono da pasta
-g ----> Permissão para o grupo
-o ----> Permissão para outros
+  ----> Adiciona a permissão
-   ----> Retira a permissão
r  ----> Permissão de leitura
w----> Permissão de escrita
x ----> Permissão de execução (para arquivos indica execução, no caso de pastas permite entrar).


Modo octal:

Assim como podemos ajustar as permissões usando as letras, temos também o modo octal, como em.

0 ----> Nenhuma permissão
1 ----> Permissão de execução
2 ----> Permissão de gravação
3 ----> Permissão de execução e gravação (corresponde á 2+1=3)
4 ----> Permissão de leitura
5 ----> Permissão de leitura e execução (corresponde á 4+1=5)
6 ----> Permissão de leitura e gravação (corresponde á 4+2=6)
7 ----> Permissão total (corresponde á 4+2+1=7)

Dicas de administração do sistema Part 7

Por: Fagner Oliveira




Gerenciamento de usuários:

Embora o Linux tenha sido desenvolvido de uma forma independente, ele é um sistema Unix que herdou os recursos multiusuário dos primeiros sistemas Unix. Isso permite que o sistema possa ser usado por vários usuários ao mesmo tempo, sem que um atrapalhe as atividades do outro, nem de forma alguma possa alterar seus arquivos.
A restrições básicas de acesso são implementadas, através de um sistema de permissões simples, porém, eficientes. Consiste pois em um conjunto de três permissões de acesso (ler, gravar, executar) e três grupos (dono, grupo, outros), combinadas nos permitem fazer muitas coisas.

Existe dois comandos básicos que permite respectivamente a criação de usuários e criação ou alteração de senhas, são eles: "adduser"  "passwd".

Para criar um novo usuário, basta executar:

# adduser joao
(cria o usuário joao e especifica uma senha para ele)

# passwd joao
(altera a senha caso necessite)

Um usuário comum pode alterar sua senha normalmente usando o comando "passwd", porém, é preciso especificar a senha antiga, caso contrário nada será feito. Se isso acontecer será uma tarefa que o administrador do sistema terá que fazer, pois ele entrará com a conta de root e fará o procedimento, lembrando que, para o root não é necessário especificar a senha antiga.

Os usuários cadastrados no sistema estão dentro do arquivo "/etc/passwd", esse arquivo tem o seguinte conteúdo:
==========================================================================

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
syslog:x:101:103::/home/syslog:/bin/false
messagebus:x:102:105::/var/run/dbus:/bin/false
avahi-autoipd:x:103:108:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false

==========================================================================

Esse arquivo pode ser editado manualmente, porém deve-se tomar muito cuidado para não alterar o campo errado. O comando para editar esse arquivo é o "usermod"

Para deletar um usuário anteriormente criado é o utilizado o comando "deluser", como em:

# deluser joao

Por padrão ele só exclui a conta do sistema mantendo assim o diretório pessoal do usuário. Caso for necessário remover o usuário incluindo seu diretório pessoal, adicione o parâmetro "--remove-home", como em:

# deluser joao --remove-home

Também existe a possibilidade de bloquear um usuário específico sem fazer sua exclusão do sistema, para isso adicione o parâmetro "-l" no comando "passwd", como em:

# passwd -l joao

Dessa forma é incluído uma "!" antes da conta do usuário no arquivo "/etc/passwd". Para desbloquear usa-se a opção "-u", como em:

# passwd -u joao

quinta-feira, 5 de janeiro de 2012

Dicas de administração do sistema Part 6

Por: Fagner Oliveira






Aglutinando arquivos:

Tar: Esse comando é usado para empacotar, compactar e descompactar arquivos.
Em sua forma mais simples possuí essa estrutura:

comando: opcões: parâmetro: diretório

Opções do Tar:

-c ----> criar
-x ----> extrair
-v ----> modo detalhado
-f ----> indica o nome do arquivo
-j ----> permite usar o método de compressão bzip2
-z ----> permite usar o método de compressão gzip

Ex: tar  -cjvf   backup.tar.bz2   /home

Aqui estou dizendo para o tar criar o arquivo chamado backup incluindo todos os arquivos do diretório /home e utilizando compressão bzip2 mostrando toda a operação na tela.

Caso fosse necessário extrair os arquivos desse pacote, executaria o tar assim:

Ex: tar -xjvf  backup.tar.bz2


Acertando o relógio:


Ao tratar-se de servidores, o relógio do sistema é mais uma configuração importante que não pode ser deixada de lado. Imagine que você precisasse entregar uma auditória de segurança, e ao analisar os logs do seu servidor notaria que o horário estava totalmente errado. E agora, o que fazer?
Simplesmente nada, mas esse tipo de erro pode ser evitado. Mas como?

Bem, existe um protocolo chamado ntp (Network Time Protocol), ele é responsável por manter o relógio do sistema em sincronia com outro servidor ntp, geralmente o "pool.ntp.org" é utilizado para esse fim.

Para usá-lo, o primeiro passo é verificar se os pacotes "ntp e ntpdate" estão instalados no sistema. Em distribuições derivadas do Debian, você pode instalá-los usando o "apt-get".


# apt-get install ntp ntpdate

Após instalado o ntp passa a ajustar o relógio do sistema de forma totalmente transparente, mantendo o relógio em sincronia com os servidores especificados no arquivo "/etc/ntp.conf". Para checar a hora é utilizado o comando "date".



Ex: # date
Qui Jan  5 00:40:38 BRT 2012

Existe uma diferença em relação ao ntpdate, o ntp ajusta poucos segundos de cada vez, pois a função de ajustar o relógio em caso de grandes atrasos ficou para o "ntpdate", que atualiza na marra. Independente de quão grande seja o atraso.


Ex: ntpdate -u pool.ntp.org

A opção "-u" é usada para que ele utilize uma porta UDP alta, evitando que a porta 123 esteja aberta no firewall, e "pool.ntp.org" é um servidor público, que passa a requisição para um servidor mais próximo.

Caso o horário apareça atrasado ou adiantado algumas horas, é sinal que o fuso horário não tenha sido definido corretamente. Nesse caso utiliza-se o comando "tzselect", para ajustar as configurações.
Caso o servidor utilize o horário de Brasília (UTC-3), você usaria as opções opções  2) Americas > 9) Brasil > 8) S & SE Brasil ( GO, DF, MG, ES, RJ, SP, PR, SC, RS).

quarta-feira, 4 de janeiro de 2012

Dicas de administração do sistema Part 5

Por: Fagner Oliveira




Bash_completion:

Um dos recursos mais úteis do terminal é usar a tecla TAB para completar comandos, o famoso Bash_completion (auto-completar), ao pressionar uma vez a tecla TAB o interpretador tenta completar o comando, caso haja mais de uma possibilidade outro toque e ele lista as opções.
Parece estranho, mas esse recurso vem desativado em algumas distribuições, para ativá-lo é bem simples; basta adicionar a seguinte linha no "/etc/profile".

[  "$PS1"  -a   -f  /etc/bash_completion  ]  &&  .  /etc/bash_completion


Entendendo o path:

O sistema procura por comandos dentro de pastas específicas, e a esse conjunto de pastas dar-se o nome de "PATH" que por sua vez é armazenado em uma variável no sistema com o o nome cognato "PATH". Para ver a lista basta usar esse comando:

$ echo $PATH


/usr/local/bin:/usr/bin:/bin:/usr/games

A pasta /bin contém os utilitários do sistema, comandos como: (cat, cp, rm, mv) estão dentro dessa pasta. A grande maioria dos executáveis de programas vão para "/usr/bin", onde temos tanto aplicativos do terminal como do modo gráfico.

Ao executar o mesmo comando como root, percebe-se que a lista muda um pouco.

# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

A diferença aqui é que o PATH do root possui os diretórios "/usr/local/sbin" e "/usr/sbin". Pois essas duas pastas são reservadas aos comandos que só podem ser executados por ele.


Edição básica de arquivos com vi:

O vi (Visual editor) é o editor de textos padrão, o mesmo é voltado para operação em terminal, onde os atalhos do teclado são usados para tarefas de edição.
Há três modos de execução básicos no vi.


Modo de navegação:

É o modo inicial do vi. Nesse modo as teclas do teclado atuam na navegação e edição de blocos de texto.



Modo de inserção:

Para entrar no modo de inserção basta pressionar a tecla [i] ou [A], esse modo é usado para digitar textos no documento. Nesse modo ao pressionar a tecla [ESC] é feita a saída do modo de inserção voltando para o modo de navegação.



Modo de comando:

Para entrar nesse modo basta pressionar [:] no modo de navegação, esse modo é usado para fazer buscas, salvar, sair, executar comandos do shell e alterar configurações do próprio vi. Para voltar para o modo de navegação basta usar a instrução visual ou [ Enter].


Comandos do vi:

:! ---> Permite executar um comando do shell
:quit ou :q ----> Fecha
:quit! ou :q! ----> Fecha sem gravar
:wq ----> Salva e fecha
:exit ou : x ou :e ----> Fecha e grava se for necessário
:visual ----> Volta para o modo de comando


Teclas de navegação:


O, $ ----> inicio e fim de linha
1G, G ---->inicio e fim de documento
h, j, k, l ----> esquerda, abaixo, acima, direita
/, ? ----> busca para frente e para trás
r ----> substitui um único caractere
x ----> apaga um único caractere
y, yy ----> copia um item ou toda linha
p, P ----> cola o conteúdo depois ou antes do cursor
u ----> desfazer
ZZ ----> fecha e salva caso necessário
ZQ ----> fecha e não salva

terça-feira, 3 de janeiro de 2012

Dicas de administração do sistema Part 4

Por: Fagner Oliveira


ln: Permite criar links entre arquivos, semelhante aos atalhos do Windows. O sistema suporta dois tipos de links, são eles: os Hard links e os Soft links (links simbólicos).
O sistema trabalha com o link da mesma forma que o arquivo original, de fato que ao gravar informações no link, ou visualizar seu conteúdo, você estar simplesmente trabalhando diretamente com o arquivo, caso mova-se, delete ou renomei o link, as mudanças são feitas apenas no link.
Os Soft links são atalho estático: ao mover ou deletar o arquivo, é quebrada a ligação com o link. Já o Hard links são mais precisos, pois estão mais intimamente ligados ao arquivo e sofrem alterações junto com ele: se o arquivo mudar de lugar, o próprio link faz sua atualização automaticamente. Isso só é possível porque nos sistemas de arquivos usados pelo sistema, cada arquivo possuí um código que o identifica (o inode), que nunca muda.
Quando o arquivo é renomeado o sistema sabe que é o mesmo do atalho simplesmente procurando pelo inode ao invés do nome. Outra dica é que se você apaga o arquivo original, o arquivo continua acessível através do Hard link, é como se você tivesse duas cópias do mesmo arquivo, mas apenas o espaço em disco é usado uma única vez.
A grande limitação dos Hard links é que os links só podem ser criados se os arquivos de destino estiverem dentro da mesma partição. Este é o motivo dos links simbólicos serem mais usados.

Caso seja usado sem argumentos, o comando ln criará um Hard link, como em:

$ ln /var/www/dominiointerno/arquivo   /home/dominiointerno/arquivo

Os links simbólicos são criados passando como argumento para o comando ln a opção "-s", como em:

ln -s /var/www/dominiointerno/html    /home/dominiointerno/html


Histórico: O terminal mantém armazenado um histórico dos últimos 500 comandos executados, que é salvo dentro do arquivo ".bash_history" no diretório "/home".
Caso queira repetir um comando recente, basta pressionar setas para cima ou para baixo até encontrá-lo. Se preferir ver uma lista com todos os comandos digitados use o comando "history", como em:



#  history

 94  sudo ifconfig
   95  sudo /etc/init.d/network-manager restart
   96  sudo ifconfig
   97  echo 1 > /proc/sys/net/ipv4/ip_forward
   98  sudo echo 1 > /proc/sys/net/ipv4/ip_forward
   99  sudo wireshark
  100  xkill
  101  sudo which ls
  102  which ls
  103  find /etc/ -name smb.conf
  104  sudo find /etc/ -name smb.conf
  105  su -
  106  head /etc/samba/smb.conf | cat -n
  107  head -20 /etc/samba/smb.conf | cat -n
  108  tail -f /var/log/syslog
  109  head -20 /etc/samba/smb.conf | cat -n
  110  sudo -i
  111  history

Como podem observar os comandos são numerados de acordo com a ordem com que foram executados, uma dica interessante é que podemos reexecutar qualquer comando da lista, basta usar a exclamação seguido do número do comando que aparece na lista. Digamos que você quisesse executar novamente o comando
"sudo echo 1 > /proc/sys/net/ipv4/ip_forwar", que aparece com número 98 da lista, você usaria:

# !98


Ponto e vírgula: O sistema oferece disponibiliza um recurso que permite executar mais de um comando ao mesmo tempo, basta separá-los por ";", como em:

$ wget -c http://url/cdubuntu1.iso; wget -c http://url/cdubuntu2.iso; wget -c http://url/cdubuntu3.iso


Case sensitive: Todos os comandos e parâmetros dentro de arquivos de configuração são case sensitive, pois precisa respeitar a gráfia correta diferenciando maiśuculas de minúsculas. Por exemplo:

O comando "ls -s"  mostra o tamanho dos arquivos na listagem, enquanto que o comando "ls -S" ordena os arquivos por tamanho.


reboot: Esse comando reinicia o sistema

shutdown: Esse comando é usado para desligar ou reiniciar o sistema, mas dar a possibilidade de especificar um horário. Em caso de servidores ele é bastante útil permitindo agendar os reboots do sistema, para serem executados em horários de baixo pico.

Para isso deve-se especificar um tempo em minutos que o sistema esperará antes de fazer o desligamento, usando o parâmetro "+", como em "shutdown -r +60", também é possível especificar um horário no formato "hh:mm", como em "shutdown -r 06:00" (para reiniciar às seis da manhã). Caso queira desligar bastar substituir o "-r" por "-h".

Dicas de administração do sistema Part 3

Por: Fagner Oliveira



locate: Esse comando permite encontrar arquivos no sistema, diferentemente do comando "find" que veremos a seguir, o "locate" não faz sua pesquisa no hd, mas em sua base de dados que é atualizada com o comando "updatedb", caso você queira procurar por arquivos criado recentemente o locate não encontrará, ao menos que você tenha executado o updatedb para atualizar sua base de dados.

which: mostra o caminho dos executáveis no sistema
Ex: which ls
/bin/ls



find: Também usado para procurar arquivos, mas não usa uma base de dados, como o locate, sua pesquisa vasculha diretórios e subdiretórios até encontrar o arquivo

Ex: sudo find /etc/ -name smb.conf
/etc/samba/smb.conf


su: No sistema existe uma separação entre o "root" e os demais usuários do sistema, o "root" têm acesso completo ao sistema, podendo alterar configurações e usar a maior parte das ferramentas para tal procedimento.
Sua sintaxe é bem básica:

Ex: su -
Senha:



sudo: Algumas distribuições vem com a conta de "root" desativada por padrão, ai é que entra a utilidade desse comando, assim como outros utilitários no sistema, o "sudo" possuí seu arquivo de configuração, localizado em "/etc/sudoers", esse arquivo serve para permitir quem usará o comando. No ubuntu só o usuário administrativo criado na instalação poderá usar o "sudo".

Ex: sudo -i

cat: Usado para visualizar o conteúdo de arquivos, como em "cat /etc/samba/smb.conf", ele também pode ser combinado com outros comandos para fazer cópia de arquivos, como em " cat meuarquivo.txt > /dev/fd0", nesse caso o /dev/fd0 representa minha unidade de disquete no sistema.

head: permite visualizar as primeiras linhas de um arquivo, por padrão ele mostra as primeiras dez linhas, caso queira que ele mostre uma quantidade maior de linhas execute-o assim:

Ex: head -20 /etc/samba/smb.conf | cat -n
     1    #
     2    # Sample configuration file for the Samba suite for Debian GNU/Linux.
     3    #
     4    #
     5    # This is the main Samba configuration file. You should read the
     6    # smb.conf(5) manual page in order to understand the options listed
     7    # here. Samba has a huge number of configurable options most of which
     8    # are not shown in this example
     9    #
    10    # Some options that are often worth tuning have been included as
    11    # commented-out examples in this file.
    12    #  - When such options are commented with ";", the proposed setting
    13    #    differs from the default Samba behaviour
    14    #  - When commented with "#", the proposed setting is the default
    15    #    behaviour of Samba but the option is considered important
    16    #    enough to be mentioned here
    17    #
    18    # NOTE: Whenever you modify this file you should run the command
    19    # "testparm" to check that you have not made any basic syntactic
    20    # errors.

tail: Permite visualizar as últimas linhas de um arquivo, por padrão mostra as últimas dez linhas, esse comando é muito usado para visualizar os arquivos de log, para visualizar arquivos de log em tempo real usa-se a opção "-f " seguido do arquivo.

Ex: tail -f /var/log/syslog
Jan  2 23:57:03 200 kernel: [19637.235131] init: cups main process ended, respawning
Jan  2 23:57:10 200 kernel: [19644.025724] type=1400 audit(1325559430.056:21128): apparmor="STATUS" operation="profile_replace" name="/usr/lib/cups/backend/cups-pdf" pid=31755 comm="apparmor_parser"
Jan  2 23:57:10 200 kernel: [19644.026255] type=1400 audit(1325559430.056:21129): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/cupsd" pid=31755 comm="apparmor_parser"
Jan  2 23:57:10 200 kernel: [19644.052801] type=1400 audit(1325559430.084:21130): apparmor="DENIED" operation="chown" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/" pid=31756 comm="cupsd" requested_mask="w" denied_mask="w" fsuid=0 ouid=0
Jan  2 23:57:10 200 kernel: [19644.053062] type=1400 audit(1325559430.084:21131): apparmor="DENIED" operation="chown" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/certs/" pid=31756 comm="cupsd" requested_mask="w" denied_mask="w" fsuid=0 ouid=0
Jan  2 23:57:10 200 kernel: [19644.058626] type=1400 audit(1325559430.088:21132): apparmor="DENIED" operation="mknod" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/printcap" pid=31756 comm="cupsd" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Jan  2 23:57:10 200 kernel: [19644.064790] type=1400 audit(1325559430.096:21133): apparmor="DENIED" operation="mknod" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/cups.sock" pid=31756 comm="cupsd" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Jan  2 23:57:10 200 kernel: [19644.065178] type=1400 audit(1325559430.096:21134): apparmor="DENIED" operation="mknod" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/cupsd.pid" pid=31756 comm="cupsd" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Jan  2 23:57:10 200 kernel: [19644.066656] init: cups main process (31756) terminated with status 1
Jan  2 23:57:10 200 kernel: [19644.066775] init: cups main process ended, respawning
Jan  2 23:57:16 200 kernel: [19650.879763] type=1400 audit(1325559436.908:21135): apparmor="STATUS" operation="profile_replace" name="/usr/lib/cups/backend/cups-pdf" pid=31778 comm="apparmor_parser"
Jan  2 23:57:16 200 kernel: [19650.880382] type=1400 audit(1325559436.912:21136): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/cupsd" pid=31778 comm="apparmor_parser"
Jan  2 23:57:16 200 kernel: [19650.908451] type=1400 audit(1325559436.940:21137): apparmor="DENIED" operation="chown" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/" pid=31780 comm="cupsd" requested_mask="w" denied_mask="w" fsuid=0 ouid=0
Jan  2 23:57:16 200 kernel: [19650.908685] type=1400 audit(1325559436.940:21138): apparmor="DENIED" operation="chown" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/certs/" pid=31780 comm="cupsd" requested_mask="w" denied_mask="w" fsuid=0 ouid=0
Jan  2 23:57:16 200 kernel: [19650.917573] type=1400 audit(1325559436.948:21139): apparmor="DENIED" operation="mknod" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/printcap" pid=31780 comm="cupsd" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Jan  2 23:57:16 200 kernel: [19650.924979] type=1400 audit(1325559436.956:21140): apparmor="DENIED" operation="mknod" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/cups.sock" pid=31780 comm="cupsd" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Jan  2 23:57:16 200 kernel: [19650.925414] type=1400 audit(1325559436.956:21141): apparmor="DENIED" operation="mknod" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/cupsd.pid" pid=31780 comm="cupsd" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Jan  2 23:57:16 200 kernel: [19650.926916] init: cups main process (31780) terminated with status 1
Jan  2 23:57:16 200 kernel: [19650.927026] init: cups main process ended, respawning
Jan  2 23:57:23 200 kernel: [19657.333116] type=1400 audit(1325559443.364:21142): apparmor="STATUS" operation="profile_replace" name="/usr/lib/cups/backend/cups-pdf" pid=31798 comm="apparmor_parser"
Jan  2 23:57:23 200 kernel: [19657.333527] type=1400 audit(1325559443.364:21143): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/cupsd" pid=31798 comm="apparmor_parser"
Jan  2 23:57:23 200 kernel: [19657.354606] type=1400 audit(1325559443.384:21144): apparmor="DENIED" operation="chown" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/" pid=31799 comm="cupsd" requested_mask="w" denied_mask="w" fsuid=0 ouid=0
Jan  2 23:57:23 200 kernel: [19657.354782] type=1400 audit(1325559443.384:21145): apparmor="DENIED" operation="chown" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/certs/" pid=31799 comm="cupsd" requested_mask="w" denied_mask="w" fsuid=0 ouid=0
Jan  2 23:57:23 200 kernel: [19657.360698] type=1400 audit(1325559443.392:21146): apparmor="DENIED" operation="mknod" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/printcap" pid=31799 comm="cupsd" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Jan  2 23:57:23 200 kernel: [19657.366326] type=1400 audit(1325559443.396:21147): apparmor="DENIED" operation="mknod" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/cups.sock" pid=31799 comm="cupsd" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Jan  2 23:57:23 200 kernel: [19657.366744] type=1400 audit(1325559443.396:21148): apparmor="DENIED" operation="mknod" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/cupsd.pid" pid=31799 comm="cupsd" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Jan  2 23:57:23 200 kernel: [19657.368310] init: cups main process (31799) terminated with status 1
Jan  2 23:57:23 200 kernel: [19657.368462] init: cups main process ended, respawning
Jan  2 23:57:29 200 kernel: [19663.735830] type=1400 audit(1325559449.764:21149): apparmor="STATUS" operation="profile_replace" name="/usr/lib/cups/backend/cups-pdf" pid=31817 comm="apparmor_parser"
Jan  2 23:57:29 200 kernel: [19663.736391] type=1400 audit(1325559449.768:21150): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/cupsd" pid=31817 comm="apparmor_parser"
Jan  2 23:57:29 200 kernel: [19663.757962] type=1400 audit(1325559449.788:21151): apparmor="DENIED" operation="chown" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/" pid=31818 comm="cupsd" requested_mask="w" denied_mask="w" fsuid=0 ouid=0
Jan  2 23:57:29 200 kernel: [19663.758115] type=1400 audit(1325559449.788:21152): apparmor="DENIED" operation="chown" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/certs/" pid=31818 comm="cupsd" requested_mask="w" denied_mask="w" fsuid=0 ouid=0
Jan  2 23:57:29 200 kernel: [19663.763306] type=1400 audit(1325559449.792:21153): apparmor="DENIED" operation="mknod" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/printcap" pid=31818 comm="cupsd" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Jan  2 23:57:29 200 kernel: [19663.769952] type=1400 audit(1325559449.800:21154): apparmor="DENIED" operation="mknod" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/cups.sock" pid=31818 comm="cupsd" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Jan  2 23:57:29 200 kernel: [19663.770346] type=1400 audit(1325559449.800:21155): apparmor="DENIED" operation="mknod" parent=1 profile="/usr/sbin/cupsd" name="/run/cups/cupsd.pid" pid=31818 comm="cupsd" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Jan  2 23:57:29 200 kernel: [19663.771752] init: cups main process (31818) terminated with status 1
Jan  2 23:57:29 200 kernel: [19663.771841] init: cups main process ended, respawning
^C


| (pipe): o pipe junto com as setas de redirecionamento ( > e >>) é muito usado em scipts. A ideia desse comando é redirecionar a saída de um comando para entrada de outro. vejam!!!

Ex:
head -20 /etc/samba/smb.conf | cat -n
     1    #
     2    # Sample configuration file for the Samba suite for Debian GNU/Linux.
     3    #
     4    #
     5    # This is the main Samba configuration file. You should read the
     6    # smb.conf(5) manual page in order to understand the options listed
     7    # here. Samba has a huge number of configurable options most of which
     8    # are not shown in this example
     9    #
    10    # Some options that are often worth tuning have been included as
    11    # commented-out examples in this file.
    12    #  - When such options are commented with ";", the proposed setting
    13    #    differs from the default Samba behaviour
    14    #  - When commented with "#", the proposed setting is the default
    15    #    behaviour of Samba but the option is considered important
    16    #    enough to be mentioned here
    17    #
    18    # NOTE: Whenever you modify this file you should run the command
    19    # "testparm" to check that you have not made any basic syntactic
    20    # errors.

Nesse caso o comando "head" passou o conteúdo do arquivo samba.conf para o comando  "cat -n " que me mostrou uma listagem numerada, pois o comando "head -20 /etc/samba/smb.conf" foi usado para mostrar as primeiras vinte linhas do arquivo, e o "cat -n ", me confirmou na listagem.