segunda-feira, 25 de janeiro de 2016

INotify - Monitorando ocorrências com arquivos e diretórios

Para monitorar o que ocorre com arquivos ou diretórios podemos utilizar o serviço "inotify".
Nessa dica será mostrado apenas como monitorar especificamente um diretório e executar ações relativos a ação ocorrida.
Mais informações sobre o sistema inotify pode ser vista nesse link.
Abaixo segue um pequeno shell-script que apenas mostra as ações que ocorreram jogando as informações para um comando "while" e então tratando-as.Nesse cado, especificamente, apenas mostra na tela mas pode até mandar mensagens, e-mail, desligar o computador, fazer uma ligação ou sei lá o que sua imaginação possa imaginar. rsrs

Crie um arquivo monitora.sh

#!/bin/bash
  clear
  inotifywait -q -r -m $1 -e access,modify,attrib,close_write,move,create,delete | while read caminho ocorrencia arquivo;
    do
       echo ": $ocorrencia - ${caminho}${arquivo}"
    done


Para monitorar o diretório basta usar "./monitora.sh ". 
Nesse exemplo apenas é mostrado na tela as ocorrências monitoradas. O comando colocado entre "do" e "done" definirá a ação a ser executada. Então, nesse ponto, entra a criatividade.

Entendendo o comando:

inotifywait - aguarda por mudanças utilizando o inotify de arquivos/diretórios
   -q = Determina que mensagens do sistema, que não sejam exatamente o status esperado, seja ocultado.
   -r = Todos os subdiretórios também serão monitorados.
   -m= Habilita o modo "monitoramento" fazendo com que o programa seja executado continuamente.
   $1 = O parâmetro passado na linha de comando.
   -e = As funções que serão monitoradas.

Demais informações, use o man do comando inotifywait.

sábado, 24 de janeiro de 2015

Melhorar desempenho do comando "ls" no Linux

Pode parecer uma coisa tão idiota!!!
Alguém poderia perguntar: Porque eu precisaria melhorar o desempenho de um comando que me retorna o conteúdo de uma pasta em centésimos de segundo?
Então a resposta sarcástica: Tente executá-lo em uma pasta com 800.000 arquivos...

Quando tentamos executar esse comando e outros de listagem em uma pasta com centenas de milhares de arquivos isso se torna um dilema, ele pode demorar minutos para começar a mostrar o resultado e, em caso de servidores como controle de timout de sessões ssh se tornaria impossível pois enquanto ele faz a pesquisa não há tráfego de rede e a conexão cairá. E depois que pressionamos , nem adianta apelar para o +c pois ele demorará para responder.

Para amenizar o problema podemos utilizar a opção "-f" do comando "ls" assim:

$ ls   -f

Isso fará com que o resultado não se ordenado ou formatado e assim o resultado é mostrado rapidamente na tela.

terça-feira, 21 de outubro de 2014

Erro no Grub com RAID no CentOS 6.5


Após efetuar a instalação do sistema operacional com discos em RAID por software, existe grande probabilidade de recebe a mensagem abaixo:





Para resolver, siga os passos seguintes:




Entendendo:

find /grub/stage1
     Mostra os HDs e partições disponíveis.

root (hd0,0)
     Define qual a partição possui o grub, normalmente é a /boot ou a /.

setup (hd0,0)
     Instala o grub na primeira partição do primeiro dispositivo.

quit
     Em alguns casos, nem funciona já que não foi iniciado a partir do prompt, então basta substituí-lo por um reboot.


   

quinta-feira, 18 de setembro de 2014

Converter máquina Física para Virtual no KVM

Um dos momentos mais importantes no trabalho com máquinas virtuais é a transformação das máquinas físicas para virtuais.
Normalmente encontramos na internet milhares de tutoriais de "como instalar KVM" e "criar máquinas virtuais novas". Porém, quando pouco se acha sobre administrar um servidor já em uso.
Nas instruções a seguir vou considerar que o servidor KVM já está em uso e queremos transferir uma máquina física para uma virtual nesse servidor.

Primeiramente observe se existe espaço em disco suficiente para essa operação pois o HD da máquina física será copiado integralmente.

Para essa ação utilizaremos os programas virt-v2v e virt-p2v no sistema operacional CentOS 6.5.
Nada será feito no Sistema Operacional da máquina física a ser virtualizada. A única ação nessa máquina será desligá-la e inicializar com cd-rom.


Então, vamos ao trabalho...

No Hospedeiro:
1- Instale os programas

# yum install virt-v2v   virt-p2v

A  instalação irá baixar o arquivo virt-p2v-09.1-2.20130730.1.el6.centos.iso na pasta /usr/share/virt-p2v. Claro que esse nome pode mudar conforme a versão do programa.
Grave um cd com essa imagem. 

Edite o arquivo /etc/virt-v2v.conf adicionando as seguintes linhas dentro da tag virt-v2v, ou seja, antes de "
":


      libvirt
     
            default
     

     
     
     

* Para agilizar esse tutorial, preenchi os campos nesse exemplo com dados sem nenhuma regra específica, mas se você pretende importar várias máquinas pode analisar os dados e preencher conforme sua necessidade, senão poderá alterar diretamente na máquina após a importação

Na máquina física:
1- Inicialize com o CD-Rom gravado no passo anterior;

2- Caso não haja servidor DHCP em sua rede, será mostrada uma tela para configuração de rede, configure a rede na mesma rede do Hospedeiro.

3- Será solicitado então:
---- Nome do host: Que você deve preencher com o IP do Hospedeiro;
---- Usuário:  Nesse caso o campo já vem preenchido com o "root". É o root do hospedeiro;
---- Senha: É a senha do usuário root no Hospedeiro;


Então é só escolher as informações inerentes a sua máquina física e iniciar a operação. 
Em um disco de 500GB o tempo da conversão foi de aproximadamente 5 horas, mas isso varia conforme a qualidade dos discos e das conexões de rede envolvidos.


Mudar status de interface de rede de máquina virtual no KVM

Para emular a desconexão do cabo de rede em uma máquina virtual no KVM devemos seguir os seguintes passos:

- Ligar a máquina virtual;

No hospedeiro:

# virsh

virsh # domiflist

Receberá a mensagem abaixo:

Interface  Type       Source     Model       MAC
------------------------------------------------------- 

vnet3      bridge     br0        -           50:e5:49:00:00:33

Observe o nome da interface da máquina em questão.

Então desative-a com o comando:

virsh # domif-setlink vnet3  down

Para reativar:

virsh # domif-setlink   vnet3 up



Observações:
As inscrições "virsh #" é o prompt de comando do virsh, não será digitado.

sexta-feira, 12 de setembro de 2014

Trabalhar com arquivo de imagem de dispositivo.

Quando copiamos o conteúdo de uma partição de disco em um arquivo através do comando dd, a montagem desse arquivo é bem simples, vejamos para exemplificar:

Tenho um disco com /dev/sda1 e /dev/sda2. Vou criar um arquivo com a imagem de cada partição com o seguinte comando:

# dd  if=/dev/sda1    of=arquivo_sda1.iso
# dd  if=/dev/sda2    of=arquivo_sda2.iso

Claro que o bom senso diz que devemos fazer isso com o dispositivo desmontado e, principalmente, não ser o disco em uso no momento.

Para montar o arquivo e ler seu conteúdo em outro computador:

# mkdir /mnt/sda1
# mount -t auto -o loop arquivo_sda1.iso /mnt/sda1


# mkdir /mnt/sda2
# mount -t auto -o loop arquivo_sda2.iso /mnt/sda2

* Não vou entrar em detalhes sobre isso aqui porque tem milhões de tutoriais e explicações detalhadas sobre isso na internet, não vou plantar mais do mesmo.

O problema é quando copiamos o conteúdo de um dispositivo inteiro que está particionado. Isso não tem muitos tutoriais por aí. Por exemplo:

Um disco de sistema de 500 GB particionado assim:

/dev/sda1
/dev/sda2
/dev/sda3

Executamos a cópia assim:

# dd if=/dev/sda  of=imagem_de_disco_sda.iso


Pronto, já temos a bomba!!!!! rsrsrs
Na hora de montar essas partições é que vem o problema pois é um único dispositivo.


Então vamos a solução tão simples que creio que por isso que tem tão pouco na internet.


# losetup -P /dev/loop0 imagem_de_disco_sda.iso 

Com a opção -P (maiúscula) o sistema criar tantos dispositivos quantas forem as partições do disco da seguinte forma, no nosso caso:

/dev/loop0p1
/dev/loop0p2
/dev/loop0p3

Então para montar as partições:

# mkdir /mnt/loop0p1
# mount -t auto /dev/loop0p1 /mnt/loop0p1

# mkdir /mnt/loop0p2
# mount -t auto /dev/loop0p2 /mnt/loop0p2

# mkdir /mnt/loop0p3
# mount -t auto /dev/loop0p3 /mnt/loop0p3
 

* a opção "-t auto" pode mudar dependendo do sistema de arquivo que existir na partição. Sugiro o uso do comando blkid para identificar os Sistemas de Arquivo de cada partição.
* A extensão ".iso" no arquivo de imagem é meramente ilustrativa, pode ser qualquer nome.


Um pouco mais...
Há casos que alguns sistemas operacionais não possuem o aplicativo losetup, em substituição vem o kpartx, como o CentOS 6.5. Então vou aproveitar e explicar como usar esse comando também:

# kpartx -av imagem_de_disco_sda.iso
Vai ser mostrada a seguinte saída:

add map loop0p1 (253:4): 0 16002 linear /dev/loop0 63
add map loop0p2 (253:5): 0 4415 linear /dev/loop0 16065

Diferente do losetup, ele não cria os atalhos /dev/loop0p1 e /dev/loop0p2. Mas observer uma sequência numérica na saída do comando, "253:4" e "253:5".
Se você listar o conteúdo de /dev/block, vai ver esses números lá apontando para dm-x que também tem links em /dev/mapper/loop0pX.
Tá, é uma confusão que não vem ao caso explicar agora.

A referência numéria no /dev/block é a que vai aparecer com mais frequência, então vamos utilizá-la para nosso exemplo:

Então, agora é só montar o dispositvo:

# mount -t auto /dev/block/253:4 /mnt/loop0p1
# mount -t auto /dev/block/253:5 /mnt/loop0p2


Pronto.
Já estão montados os dispositivos.









quarta-feira, 21 de maio de 2014

Chaves públicas e privadas para uso em aula.

Esse post é apenas para auxiliar alguns colegas da turma da faculdade de Redes de Computadores.

Uma questão sobre a utilização das chaves criptográficas que acho muito importante ser abordada é a respeito da utilização da "chave pública" de forma realmente pública.

Primeiramente compartilho uma nomenclatura que uso particularmente para que eu compreenda a utilização: 
A chave é uma só, porém ela é dividida em 2 partes e essas partes sim, são "privada" e "pública". Essa definição não se encontra em literatura, é só uma forma particular de organizar pensamentos.

Exemplo:
     A "chave do Cleber" é formada pela junção dos arquivos CleberIanes.privada.key e CleberIanes.publica.key. Eu só consigo abrir um arquivo criptografado por essa chave se eu tiver os 2 arquivos, mas eu consigo criptografar um aquivo tendo só a parte "CleberIanes.publica.key".

Então nesse link está o arquivo CleberIanes.publica.key:

                    http://goo.gl/gyb8P9

Digamos que queiram me enviar uma foto, mas é uma foto íntima (é só suposição, não precisam me enviar aquelas fotos. rsrsr
Baixem o arquivo no link acima e utilizem ele como "chave pública" para criptografar a foto e me mandar. Podem fazer isso respondendo o e-mail que mandei pra todo mundo, pois mesmo que qualquer um possa pegar a "chave pública", somente eu tenho a segunda parte da chave, a "chave privada". Vocês irão enviar o arquivo gerado pelo openssl, ou seja, o arquivo ArquivoCriptografadoASerEnviado.jpg. Não precisam me mandar qualquer chave pois eu tenho a chave privada pra abrir.

O comando no linux para isso é:
  openssl rsautl   -encryt    -in ArquivoOriginalASerEnviado.jpg    -out ArquivoCriptografadoASerEnviado.jpg  -pubin    -inkey CleberIanes.publica.key

* tudo na mesma linha, se estiver vendo em 2 ou mais  é só por causa da resolução de sua tela.

Importantíssimo compreender:
Se eu quero receber arquivos criptografados de qualquer pessoa então EU tenho que criar as chaves públicas e privadas que as pessoas usarão para me enviar arquivos. Então eu disponibilizo publicamente a chave que as pessoas podem me mandar arquivos criptografados. Dessa forma só eu conseguirei abrir os arquivos que são direcionados a mim, pois só eu tenho a segunda parte da chave.
Muita atenção nesse detalhe: Quem cria a chave não é a pessoa que vai enviar o arquivo, mas sim quem vai receber. Foi essa abordagem que senti falta na explanação dos 2 professores envolvidos. 

Dúvidas ou sugestões por e-mail. Inclusive, se encontrarem erros de digitação me avisem, estou fazendo isso  as pressas no meu horário de almoço.




sábado, 22 de março de 2014

Erro no grub em Debian Wheezy

Eu estava utilizando o computador quando de repente travou. Mudei de para o tty e não conseguia fazer nada pois dava erro de leitura de disco, reinicializei pelo "reset" e o sistema não subiu mais.
Ao inicializar chegava até a primeira tela do grub e travava antes mesmo de mostrar os boots disponíveis. Em cada tentativa de restauração as mensagens de erro mudava, dava erro de "partição não localizada", "erro de disco" ou "arquivos não encontrados"

A única forma eficiente de recuperar foi:
  1. Para evitar qualquer acidente, desconectar hds além do de S.Os.. Tenho um SSD para o S.O. e 2 HDs para os dados.
  2. Inicializar com o CD de instalação do Debian escolhendo "Advanced Options" e "Graphic Rescue Mode" depois definir idioma, teclado, sem rede, fuso horário...
  3. Escolher inicializar utilizando a partição raiz do disco com problema, no meu caso /dev/sda7;
  4. Escolher "Executar um shell em /dev/sda7";
  5. Montar as partições /boot e /var conforme sua distribuição de partições. Se essas já estiverem na raíz, é só pular esse passo.
  6. Executar o comando a seguir colocando o dispositivo em questão.
      1. # grub-install /dev/sda
      2. # update-grub
  7. Então é só reinicializar.
Ainda não sei o motivo do erro, mas durante os procedimentos de tentativa de restauração observei que minha partição /home estava lotada e apaguei alguns arquivos...






quarta-feira, 29 de janeiro de 2014

Amarrar IP ao MAC através da tabela ARP

MAC Address = Um número que está gravado no hardware da placa de rede. Teoricamente, não deveria ser possível burlar-lo e então teríamos certeza que uma máquina é ela mesma mas isso é outra história.
IP = Tá, se você chegou até aqui você sabe o que é IP, aliás deve saber o que é MAC também.

Existem dezenas de tutoriais explicando formas mirabolantes de "amarrar" IP ao MAC mas a mais simples que encontrei foi através do preenchimento do arquivo /etc/ethers.

Basta preencher o arquivo com os dados IP e MAC separados por espaço, um em cada linha.

Exemplo:

192.168.0.1 00:01:99:a9:5c:98

Dessa forma as máquinas só conseguirão acessar a sua se possuírem os 2 dados.

domingo, 23 de junho de 2013

Instalação do plugin Java no Google Chrome no Debian Wheezy


Para instalar o plugin Java para Google Chrome para acessar páginas Java de bancos (como no Itaú, por exemplo) entre outros, utilizando o Debian Wheezy 64 bits.
Infelizmente não há pacotes Debian prontos pra isso, então devemos fazer isso utilizando os binários do java.

Siga os passos abaixo:


1- Baixe a última versão do Java:

* Nessa data (23/06/13) a versão mais recente é a jre1.7.0_25.

2- Após o download descompacte o Java na pasta /usr/java.
     Criar a pasta "java", caso não exista:
          # mkdir /usr/java/

     * caso já exista uma versão anterior do java nessa pasta, apague-a
     Acesse a pasta /usr/java
          # cd /usr/java
     Extrair na pasta "java":
          # tar xvzf /home/usuario/downloads/jre-7u25-linux-x64.tar.gz
          # mv jre1.7.0_25 jre

** Em caso de atualização, manter o mesmo nome da pasta anterior (jre) fará com que os passos seguintes sejam desnecessários pois o link será sempre para o conteúdo da pasta /usr/java/jre, então bastará reiniciar o navegador.

3 – Configurar o plugin no Google Chrome:

     Caso não exista a pasta /opt/google/chrome/plugins, crie-a
          # mkdir /opt/google/chrome/plugins/
     Acesse-a
          # cd /opt/google/chrome/plugins/

     Criar um link simbólico do Java para a pasta plugin:
          # ln -s /usr/java/jre1.7.0_40/lib/amd64/libnpjp2.so

4 - Reinicie o Google Chrome e liste os plugins instalados, digitando na barra de endereços:
     chrome://plugins/

Deverá ter algo como:
     Java - Versão: 1.7.0_25
     Java plug-in for NPAPI-based browsers.


* Caso haja mais de um plugin ativado, desative o mais antigo.

domingo, 28 de abril de 2013

Acessar máquina interna via túnel SSH


Existem várias formas de acessar máquinas internas a rede, vou explicar aqui uma delas.
Para acesso SSH essa forma é muito simples, porém só é possível se tiver um usuário válido de ssh em uma máquina com acesso pela internet, preferencialmente, com firewall aberto para ssh

Cenário de exemplo:
      máquina externa ---> Firewall ---> máquina interna

Exemplo 1: --- Criando o túnel ---
      $ ssh fulano@200.xxx.xxx.xxx -NL 2222:192.168.0.99:22

Onde:
      Fulano é um usuário válido na máquina 200.xxx.xxx.xxx (Firewall)
      200.xxx.xxx.xxx é uma máquina qualquer da rede a qual tenhamos acesso direto da iternet.
      -N Define que não será nenhum comando no host primário (firewall), será apenas criado o túnel
      -L Define que ser usada a porta local na máquina externa chegar ao destino.
      2222: Define que será usada a porta 2222 em localhost na máquina externa para acessar o túnel
      192.168.0.99 É o IP da máquina interna que será acessada.
      :22 É a porta que será acessáda na máquina interna.

Exemplo 2: --- Acessando a máquina através do túnel.
      $ ssh ciclano@localhost -p 2222

Onde
      localhost se refere a máquina local
      ciclano é um usuário válido na máquina interna
      -p 2222 Determina que será usada a porta 2222 que foi ligada a máquina interna pelo túnel.

Com as devidas senhas, nesse momento você já estará no terminal da máquina destino.

sábado, 6 de abril de 2013

Visual G - Software para aprendizado de programação.

Visual G

    Uma das coisas que nunca gostei em programação foi que os professores teimam em ensinar algorítimo para iniciantes. Em partes eu discordo do método, mas na faculdade que estou cursando será obrigatório então, com o intuito de ajudar os colegas estou publicando aqui um link para uma apostila sobre o VisualG.


http://algoritmizando.com/wp-content/uploads/downloads/2010/04/visualg_ambiente.pdf


Espero ter ajudado!!!!

terça-feira, 27 de novembro de 2012

Compartilhamento samba com SELinux ativado

Não consegui ainda muita informação sobre os comandos do SELinux, mas há casos que se tem que resolver imediatamente e para esses caso que vou postar essa dica:
Quando fazemos um compartilhamento samba em uma máquina com o SELinux ativado nenhum parâmetro do samba faz com que tenhamos êxito em compartilhar uma pasta de forma totalmente livre, mesmo que coloquemos tudo liberado o sistema ainda pedirá senha para um compartilhamento sem senha.

Para isso faça o compartilhamento normalmente no arquivo /etc/samba/smb.conf samba.
Exemplo:

     [publico]
       comment = Pasta pública
       path = /publico
       public = yes
       read only = no
       writable = yes
       browseable = yes
       guest ok = yes

* Esse aqui é o exemplo apenas do compartilhamento em si, tem as configurações do "global " também que não vou citar agora.

Depois disso utilize o comando abaixo para que o SELinux permita esse compartilhamento:

# chcon -R -t samba_share_t   /publico

Pronto, agora seu compartilhamento já será acessível.

domingo, 14 de outubro de 2012

SSH reverso.

Muitas vezes precisamos dar acesso para outra pessoa em uma máquina mas o problema é que essa máquina não tem um "IP Válido" e nem nos é permitido instalar algo como Teamviewer ou VNC por ser um servidor e, algumas vezes, não ter ambiente gráfico.
Poucas pessoas conhecem um sistema chamado de SSH Reverso, através dele podemos abrir uma conexão para alguém a partir do servidor que está dentro de uma rede sem "IP Válido". Claro, a outra máquina tem que ter uma forma de ser acessada na internet. Sugiro que quando não possuírem "IP Válido" disponível utilizem um sistema de DNS Dinâmico para terem endereçamento real na internet, mas não se esqueçam de manter um bom firewall.

Para a explicação vamos nomear as máquinas envolvidas:
    Servidor = Será a máquina que está dentro da rede interna e da qual vamos abrir o túnel reverso para permitir que a outra máquina tenha acesso.
     Desktop = Será a máquina com endereço válido (IP ou DDNS) o qual será usado para acessar o servidor. Usaremos nele a nomenclatura de DDNS desktop.dom.info


O SSH Reverso funciona da seguinte maneira:

1- Do SERVIDOR digitaremos o seguinte comando:
     # ssh -R 2222:localhost:22  desktop.dom.info -l root

Onde:
     -R = Determina que será usado SSH Reverso;
     2222 = É a porta que será ativada no "desktop.dom.info";
     22 = É a porta utilizada pelo SSH-Server para receber a conexão de volta;
     -l root = Determina que será utilizado o usuário root para esse acesso.

2- Após digitar a senha e efetuar o acesso ao desktop.dom.info abra um terminal no desktop.dom.info e digite o seguinte comando:

$ ssh -p 2222 root@localhost 

Onde:
     -p 2222 = Indica a porta que foi aberta no desktop.dom.info para o túnel;
    root = É o usuário que efetuará a conexão, pode ser qualquer outro previamente definido;
    localhost = É a máquina local que, devido ao túnel está redirecionando tudo da porta 2222 para o Servidor.

Pronto, a partir de agora você está no servidor mesmo sem ele ter "IP Válido"

quinta-feira, 27 de setembro de 2012

Programas da mozilla não abrem

Os programas da mozilla, thunderbird e firefox, vez ou outra  nos pregam uma peça. Não sei se isso ocorre em Windows também, mas no linux isso, normalmente, ocorre quando se desliga o computador sem fechar os programas como em caso de queda de energia.
Quando tentamos abrir eles acusam que já estão em execução e não abrem.
Pra resolver esse problema devemos localizar dentro da pasta do usuário em questão os arquivos lock e .parentlock dos respectivos programas. No thunderbird eles ficam no diretório .thunderbird/xxxxxxx.default e no firefox no diretório .mozilla/firefox/xxxxxxx.default (xxxxxxx é um número aleatório criado pelo sistema).
Existem várias formas de fazer isso, vou sugerir apenas uma:

$ find . -name "*lock*"

O resultado será a localização dos arquivos então remova-os utilizando o comando rm.

sábado, 22 de setembro de 2012

Remover lista longa de arquivos

Há momentos que vamos tentar remover uma quantidade muito grande de arquivos e recebemos a  mensagem "/bin/rm: Lista de argumentos muito longa". Eu ainda não procurei saber qual é o limite para o comando rm, creio que tenha haver com o sistema de arquivos utilizado.
Para forçar a remoção desses arquivos podemos utilizar vários métodos, um dos que acho mais simples, e por isso estou postando-o, é u uso do comando find com a opção -remove como no exemplo abaixo:

find . -name  "*.xxx" -delete

Onde:

find = Ótima ferramenta para pesquisa em disco;
. = Define que o diretório a ser pesquisado é o atual, pode ser substituído pelo caminho de início da pesquisa.
-name = Determina que o parâmetro que será pesquisado é o nome do arquivo.
-delete = É a "mágica" dessa dica, determina que os arquivos localizados serão apagados.
"*.xxxx" = São os arquivos que serão afetados, com as aspas.


domingo, 2 de setembro de 2012

Prioridade para usuários através do PAM

Entre as várias utilidades do PAM (Pluggable Authentication Module) está a possibilidade de definir a prioridade que os programas executados por determinado usuário.
Isso é muito útil em sistemas de servidores de terminais, por exemplo, em momentos onde se faz necessário dar prioridade para que um determinado usuário efetue tarefas essenciais. 

Para isso devemos adicionar a linha abaixo ao arquivo /etc/security/limits.conf:

usuário            hard    priority        -15


Onde:

usuário = É o login do usuário que terá privilégios.
hard     = Determina que esse parâmetro será respeitado sempre, em detrimento de qualquer outro.
priority = É o parâmetro que define o que está sendo alterado, nesse caso a prioridade dos processos.
-15      = É um valor de exemplo, que deve ser definido com um valor entre 20 e "-20". O padrão é 20 e quanto menor o número maior será a prioridade do processo sobre os outros.

Ps. Se você colocar todos os usuários com prioridade alta não adiantará nada, aliás, pode dar alguns problemas.

domingo, 26 de agosto de 2012

Prevenindo fork-bomb

Primeiramente:
O que é um fork-bomb??
É uma forma de fazer sistemas operacionais travarem por colocar uma função em loop "eterno" e, muitas vezes, isso pode ser feito com usuário comum.

Não vou colocar aqui nenhum dessas formas para "não dar armas aos inimigos" mas sei que quem quiser vai conseguir essa informação.
Para prevenir esse tipo de problema no linux devemos alterar os arquivos:
 /etc/pam.d/login descomentando ou adicionando a linha:
"session    required   pam_limits.so"

/etc/security/limits.conf adicionando ou descomentando a linha:

"*               hard    nproc             100"

* Ambas sem as aspas, claro.

Isso fará com que os usuários possam executar no máximo 100 processos ao mesmo tempo e dessa forma evitando o loop citado anteriormente.
Deve-se sempre se lembrar dessa alteração pois caso comecem ocorrer alguns problemas de alguns usuários não conseguirem executar certas funções isso pode ser por causa desse limite.


domingo, 5 de agosto de 2012

Utilizar USB em máquina virtual Virtualbox

     Nem sempre é possível utilizar os dispositivos USB sem efetuar alguns ajustes. No Debian ocorrem alguns problemas e um deles é a disponibilidade dos drivers USB do Virtualbox para os usuários então é necessário fazer algumas alterações:

1- No arquivo  /etc/udev/rules.d/10-vboxdrv.rules devemos mudar as permissões dadas aos dispositivos USB compartilhados com a máquina convidada, para isso devemos alterar a diretiva MODE de "0600" para "0666" na linha de configuração do "kernel". 
A linha estará assim:

KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600"

E deverá ficar assim:

KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0666"

2-   Devemos também efetuar uma alteração no arquivo /etc/group:
    Nele temos a linha "vboxusers:x:121:" e devemos adicionar o nome dos usuários que utilizarão o Virtualbox ao final dela, ficando assim:

vboxusers:x:121:usuario1,usuario

Após efetuar essas alterações, como qualquer outra alteração no arquivo /etc/group, temos que reiniciar a sessão do usuário que queremos que utilize o Virtualbox.


Nesse caso o cenário é Host com Linux Debian Squeeze e Guest com Windows 7.

Ps. A adição do usuário ao grupo vboxusers pode ser feita também por linha de comando ao invés de editar o arquivo /etc/group.

quarta-feira, 25 de julho de 2012

Uso do gconf-editor

Para alterar configurações do ambiente de trabalho do gnome a ferramenta indicada é o gconf-editor. Essa ferramenta muda as configurações do usuário que a está utilizando e não de todos os usuários do sistema.
Alguns exemplos de o que altera-se com essa ferramenta:

1- Desabilitar ou habilitar a visão de alguns ícones da área de trabalho:
   - apps->nautilus->desktop = Na janela da direita aparecerão os itens a serem habilitados ou desabilitados.

2- Evitar alterações nos paineis:
  - apps->panel->global = Habilite a opção "locked_down"


*Esse post será atualizado dia-a-dia já que as funções são muitas.