Blog do Zoltral

17/02/2010

Prompt do terminal personalizado II

Filed under: Linux, Tutorial — Tags:, , , , — Zoltral @ 01:57

Eu tinha o prompt do meu terminal personalizado, conforme este post.

No entanto, desde que migrei para o ArchLinux ele não funciona mais.

Assim, procurei e encontrei outro bash script que personaliza o prompt.

O prompt ficou assim agora:

De Diversos

Usei a dica daqui: http://bbs.archlinux.org/viewtopic.php?id=84386

Editado em 22/06/2010:

Apesar do link acima, achei por bem colocar o passo a passo aqui também.

1 – Salve o código no final deste post com o nome de .zer0prompt no seu diretório home.
2 – edite o arquivo .bashrc, comentando a linha PS1 e insira o código a seguir:

source ~/.zer0prompt
zer0prompt
unset zer0prompt

Código do arquivo .zer0prompt:
#!/bin/bash
#
# zer0prompt
# By: Wes Brewer [zer0]
# Last updated: Nov 8, 2009
#
# Credit for ideas/info: Phil!'s ZSH Prompt, Bashish, TERMWIDE prompt
# Bash Prompt Howto
#
# Usage: Add the follwing lines to your ~/.bashrc file
# source ~/.zer0prompt
# zer0prompt
# unset zer0prompt
#
#### user config ####
#
## set colour theme
# options -- cyan, blue, green, red, purple, yellow, black, white, none
zpcl="cyan"
#
## set info colours
# colour ref -- http://www.gilesorr.com/bashprompt/howto/c333.html#AEN335
zi1="\[33[1;32m\]" # user@host:tty
zi2="\[33[1;35m\]" # current path
zi3="\[33[1;33m\]" # time
zi4="\[33[1;31m\]" # exit status
zi5="\[33[1;32m\]" # user identifier ($ or #)
#
## set time format
# options -- 12, 24, 12s, 24s
zptm="12"
#
## set line graphics to use
zg1="─"; zg2="┌"; zg3="└"; zg4="┤"; zg5="├"; zg6=">"; zg7="|"
#zg1="-"; zg2="+"; zg3="+"; zg4="|"; zg5="|"; zg6=">"; zg7="|"
#
#
#### code ####
# Use bash builtin checkwinsize option for terminals which fail to properly
# set the $COLUMNS variable. (bug workaround)
shopt -s checkwinsize
#
# if root user then colour user@host info and user identifier red.
[ "${UID}" = 0 ] && zi1="\[33[1;31m\]" && zi5="\[33[1;31m\]"
#
# This function is run at every prompt update, keeping our variables updated.
# Bash's PROMPT_COMMAND option handles this (see end of this function).
function pre_prompt {
# show exit code of last failed command
ZEXIT="${?}"
[ "$ZEXIT" = "0" ] && ZEXIT=""
#
ZPWD=${PWD/#$HOME/\~} # sorten home dir to ~
#
# set length of our important info
local infolength="$(whoami)@$(hostname):$(basename $(tty))$ZPWD"
# set length of our graphics
local gfxlength=23
#
# construct ZFILL size to fill terminal width (minus info/gfx lengths).
local fillsize
let fillsize=${COLUMNS}-${gfxlength}-${#infolength}
ZFILL=""
while [ "$fillsize" -gt "0" ]; do
ZFILL="$ZFILL$zg1"
let fillsize=${fillsize}-1
done
#
# determine how much to truncate ZPWD, if ZFILL can't shrink anymore.
if [ "$fillsize" -lt "0" ]; then
local cut=3-${fillsize} # some tricky math, 3-(-number)=+number
ZPWD="...${ZPWD:${cut}}"
fi
}
PROMPT_COMMAND=pre_prompt
#
# This function tells bash how to draw our prompt
function zer0prompt {
local zc0="\[33[0m\]" # clear all colors
local zc1="\[33[1;37m\]"
local zc2="\[33[0;37m\]"
#
# set colour theme
if [ "$zpcl" = "cyan" ]; then
local zc3="\[33[1;36m\]"; local zc4="\[33[0;36m\]"
elif [ "$zpcl" = "blue" ]; then
local zc3="\[33[1;34m\]"; local zc4="\[33[0;34m\]"
elif [ "$zpcl" = "green" ]; then
local zc3="\[33[1;32m\]"; local zc4="\[33[0;32m\]"
elif [ "$zpcl" = "red" ]; then
local zc3="\[33[1;31m\]"; local zc4="\[33[0;31m\]"
elif [ "$zpcl" = "purple" ]; then
local zc3="\[33[1;35m\]"; local zc4="\[33[0;35m\]"
elif [ "$zpcl" = "yellow" ]; then
local zc3="\[33[1;33m\]"; local zc4="\[33[0;33m\]"
elif [ "$zpcl" = "black" ]; then
local zc3="\[33[1;30m\]"; local zc4="\[33[0;30m\]"
elif [ "$zpcl" = "white" ]; then
local zc3="\[33[1;37m\]"; local zc4="\[33[0;37m\]"
else # no colour
local zc3=""; local zc4=""; local zc1=""; local zc2=""
zi1=""; zi2=""; zi3=""; zi4=""; zi5=""
fi
#
# set time format
if [ "$zptm" = "24" ]; then
local ZTIME="\A"
elif [ "$zptm" = "12s" ]; then
local ZTIME="\T"
elif [ "$zptm" = "24s" ]; then
local ZTIME="\t"
else
local ZTIME="\@"
fi
#
# set titlebar info if xterm/rxvt
case $TERM in
xterm*|rxvt*)
local TITLEBAR='\[33]0;\u (\w) [${COLUMNS}x${LINES}]07\]';;
*)
local TITLEBAR="";;
esac
#
# prompt
PS1="${TITLEBAR}\
$zc1$zg2$zg1$zc3$zg1$zc4$zg1$zg4$zi1\u@\h:\l$zc4$zg5$zg1$zc2$zg1$zg1$zc4\
\$ZFILL$zc3$zg1$zg1$zg1$zg1$zc1$zg1$zg1$zg1$zc3$zg1$zg1$zc4$zg1$zg4$zi2\
\$ZPWD$zc4$zg5$zg1$zc2$zg1
$zc3$zg3$zc4$zg1$zg4$zi3$ZTIME$zc4$zg7$zi5\\\$$zc4$zg5$zi4\
\$ZEXIT$zc2$zg1$zc3$zg6$zc0 "
#
# continuation prompt
PS2="$zc3$zg3$zc4$zg1$zg4$zi5\\\$$zc4$zg5$zc2$zg1$zc3$zg6$zc0 "
}

25/01/2010

Opera minimalista como o Chrome

Filed under: Software — Tags:, , , — Zoltral @ 23:33

Uma das grandes mudanças trazida pelo navegador Google Chrome, foi o visual minimalista, sem a grande quantidade de barras de ferramentas e menus dos demais navegadores.

Tenho utilizado principalmente o Chrome como meu navegador, mas o Opera continua instalado em meu computador, já que ele foi por muito tempo meu navegador preferido e ainda não o abandonei.

Hoje atualizei a versão dele, e quando estava olhando alguns skins novos, encontrei um pequeno tutorial que o deixa com um visual minimalista como o Chrome.

1 – Desative as barras de ferramentas, exceto as de status, endereço e guia.
2 – Selecione o tamanho dos ícones em 70%.
3 – Digite opera:config#Show Menu na barra de endereço e desmarque a opção.
4 – Reinicie o opera.

O menu passa a estar em um botão na mesma barra das guias, na extremidade esquerda.

Pronto, o Opera está tão minimalista quando o Chrome.

Veja como é o Chrome:

De Diversos

Veja como ficou o Opera:

De Diversos

03/01/2010

3D no Gnome, sem Compiz

Filed under: Gnome, Linux, Software, Tutorial — Tags:, , , , , — Zoltral @ 23:31

Normalmente, para os efeitos 3D funcionarem, se utiliza o Compiz.

No entanto, existe como fazer os efeites 3D do Gnome funcionarem sem o Compiz.

Basta ativar o compositing_manager do Metacity.

Claro que não vai ter o cubo girante para impressionar as visitas, mas vai ter janelas com sombra e transparência real.

Como fazer?

Tecle Alt+F2 e digite gconf-editor na caixa de diálogo.

Vá no caminho Apps > metacity > general.

Procure e ative o compositing_manager.

Pronto, Já está resolvido e funcionando.

Fonte: Blog Down-Linux

28/12/2009

Segurança no Linux: procurando RootKit e configurando o firewall

Regularmente, procuro a existência de rootkits no meu Linux. Para isso utilizo o chkrootkit. No entanto, ontem, encontrei um artigo no blog do Corvolino fazendo referência a um outro programa, chamado rkhunter, que o Hugo Dória, usuário experiente em segurança e Linux, defendeu como sendo melhor que o chkrootkit.

Porque procurar rootkit em seu Linux? Porque rootkits são indicativos de que seu Linux foi invadido, estando com a segurança comprometida e seus arquivos e informações estão correndo perigo.

Veja a definição de rootkit pelo Hugo Dória em um artigo no Viva o Linux:
Rootkits são ferramentas utilizadas, geralmente, com o objetivo de ocultar a presença de invasores nas máquinas. Com essas ferramentas alguém não-autorizado, mas que já conseguiu entrar na máquina, pode ter controle sobre a máquina e nem ser notado.

Muitos rootkits acompanham uma gama de binários (como o ls, ps, who, find etc) modificados para que os processos rodados pelo invasor não possam ser vistos pelo administrador da máquina. Além disso, muitos vírus atuais utilizam rootkits.

Assim, seguindo o tutorial do Hugo Doria, instalei e executei o rkhunter.

Os passos são:

  • Instalar ele através do programa de instalação de sua distribuição, via synaptic no caso do meu Ubuntu, caso não esteja instalado ainda.
  • Atualizar a base de propriedades dos arquivos
  • rkhunter --propupd

  • Atualizar a base do rkhunter
  • rkhunter --update

  • Executar o rkhunter, como root
  • rkhunter -c
    ou
    rkhunter --check

    O rkhunter vai listar suas ações no terminal e algumas vezes vai pedir para teclar ENTER.

    Agora basta prestar atenção as mensagens de WARNING na cor vermelha, analisando a ocorrência. O log final ficará no arquivo /var/log/rkhunter.log.

    Abra este arquivo como root com seu editor de textos favorito. Aqui foi:
    sudo gvim /var/log/rkhunter.log

    Se houver algum comprometimento da máquina, pesquise na internet para procurar algum método de limpeza ou então reinstale o seu Linux.

    No meu caso, tive alguns WARNING. Pesquisando descobri que eram apenas falso-positivos que podem ocorrer. Normalmente eles aparecem no final da checagem e do log.
    Veja o exemplo abaixo:
    [23:24:29] Warning: Suspicious file types found in /dev:
    [23:24:29] /dev/shm/pulse-shm-1746895747: data
    [23:24:30] Checking for hidden files and directories [ Warning ]
    [23:24:30] Warning: Hidden directory found: /etc/.java
    [23:24:30] Warning: Hidden directory found: /dev/.static
    [23:24:30] Warning: Hidden directory found: /dev/.udev
    [23:24:30] Warning: Hidden directory found: /dev/.initramfs

    Estes falso-positivos são conhecidos, estando inclusive já mencionados no arquivo de configuração do rkhunter que está em /etc/rkhunter.conf. Mas estas referências vem por padrão comentadas. Para acabar com os falso-positivos, como root, abra este arquivo com o seu editor de texto favorito e descomente as linhas que fazem referência a eles.

    Para as referências Hidden directory found, procure a seção abaixo:

    # Allow the specified hidden directories.
    # One directory per line (use multiple ALLOWHIDDENDIR lines).
    #
    ALLOWHIDDENDIR=/etc/.java
    ALLOWHIDDENDIR=/dev/.udev
    #ALLOWHIDDENDIR=/dev/.udevdb
    #ALLOWHIDDENDIR=/dev/.udev.tdb
    ALLOWHIDDENDIR=/dev/.static
    ALLOWHIDDENDIR=/dev/.initramfs
    #ALLOWHIDDENDIR=/dev/.SRC-unix

    Para a referência ao pulse, procure a seção abaixo:

    # Allow the specified files to be present in the /dev directory,
    # and not regarded as suspicious. One file per line (use multiple
    # ALLOWDEVFILE lines).
    #
    #ALLOWDEVFILE=/dev/abc
    ALLOWDEVFILE=/dev/shm/pulse-shm-*

    Feito isto, os falso-positivos desaparecerão. Agora, se aparecer algum WARNING, então é um rootkit.

    Feito a verificação e não constatando nenhum rootkit instalado, é hora de ter certeza que o firewall está dando conta do trabalho de evitar invasões.

    Para isso, a melhor ferramenta que conheço é o guarddog. Entenda melhor neste contexto como a mais fácil

    Para a configuração do Guarddog, segui este tutorial, com algumas modificações:

    Abra o guarddog:
    sudo guarddog

    Configure no assistente dele, na aba Protocol, o seguinte:

  • chat – habilitar os serviços que você usar – msn, irc, jabber, etc;
  • data serve – habilite cddb e freedb (para consultar dicionários online), ntp se seu Linux atualiza a hora do computador pela internet;
  • file transfer – imprescindível habilitar https e http (cuidado aqui para não deixar de habilitar se não você não tem internet) e todos os serviços de troca de arquivo que você usar como bittorrent, edonkey, fasttrack, ftp, gnutella;
  • games – habilite as opções se você for um jogador e escolha o game do tipo quake, etc…;
  • interactive session – só habilite o ipp, se você precisa usar o cups (pois é pré-requisito para poder usá-lo);
  • mail – habilite pop3 e smtp (para receber e enviar e-mails), apenas se usar o email do provedor. Se usar apenas webmail (gmail, hotmail, etc), não precisa;
  • media – marcar ambos por padrão (caso você precise usar);
  • miscellaneous – habilite o pgp key server para a autenticação de chaves criptográficas;
  • network – habilite o dns para ter acesso a internet;
  • user defined – deixe em branco, a não ser que você defina alguma regra particular que você irá criar;
  • Pronto, seu Linux está limpo e seguro.

    Referências utilizadas antes, durante e depois da utilização do rkhunter e do guarddog e também para escrever este artigo:

    Procure RootKit em seu LINUX !
    Procurando rootkits no seu sistema
    RKhunter log file
    Firewall Guarddog: Configuração Básica
    Firewall guarddog

    08/10/2009

    Prompt do terminal personalizado

    Filed under: Linux, Tutorial — Tags:, , , , , , , — Zoltral @ 01:26

    Edição em 17/02/2010: Este script parou de funcionar na migração para o ArchLinux. Agora uso este aqui.

    Para quem usa Linux, uma hora ou outra acaba tendo que usar linha de comando em um terminal.

    Infelizmente, por ser em modo texto, o uso do terminal pode provocar estragos no sistema, se você não souber oque está fazendo ou principalmente, onde está fazendo.

    Já a alguns anos*, personalizei o prompt do meu terminal, para que o mesmo mostre o horário e o diretório presente.

    O terminal fica assim:

    De Diversos

    O código para conseguir este efeito é o seguinte:
    # Cores
    Vermelho="\[\33[31m\]"
    Verde="\[\33[32m\]"
    Amarelo="\[\33[33m\]"
    Ciano="\[\33[36m\]"
    Branco="\[\33[37m\]"
    Normal="\[\33[0m\]"
    ColorBold="\[\33[1;39m\]"
    # Prompt
    export PS1="$ColorBold$Verde[\t]$Amarelo[\w]\n$Ciano\u@\h $Vermelho\$ $Normal"
    export PS2="\h> "

    Este código deve ser inserido no arquivo .bashrc no diretório do usuário.

    * A primeira vez que disponibilizei este código foi em 2006, no Viva o Linux.

    31/07/2009

    Configurar o Ubuntu para assistir DVD

    Filed under: Linux, Tutorial, Ubuntu — Tags:, , , — Zoltral @ 01:17

    Continuando na linha de tutoriais do Ubuntu.

    Só ontem me deparei com um problema. Até então, não tinha tentado assistir nenhum DVD no Ubuntu e quando fui assistir, não funcionou.

    Fui direto no Synaptic para verificar as bibliotecas padrão para DVD, libdvdnav, libdvdread e libdvdcss2 e surpresa, a libdvdcss2 não estava por lá.

    Uma passada pelo Fórum Ubuntu-BR, mais especificamente neste tópico e meus problemas foram resolvidos.

    A resolução do problema passa por instalar o repositório Medibuntu e instalar os pacotes necessários.

    Os passos são estes aqui:

    1 – Instalando o repositório Medibuntu:
    sudo wget http://www.medibuntu.org/sources.list.d/jaunty.list –output-document=/etc/apt/sources.list.d/medibuntu.list

    2 – Instalando a chave do repositório:
    sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get update

    3 – Instalando as bibliotecas necessárias:
    sudo apt-get install libdvdcss2 w32codecs

    Depois disso, o VLC passou a ler DVD sem problema.

    30/07/2009

    Otimizando os arquivos do profile do Firefox

    Filed under: Software, Tutorial, Ubuntu — Tags:, , — Zoltral @ 01:04

    Seguindo a idéia inicial de juntar neste blog diversas dicas para os programas que eu uso, segue uma sobre a otimização dos arquivos do profile do Firefox.

    Vi esta dica neste artigo aqui.

    O Firefox, a partir da versão 3.0, passou a guardar os favoritos, histórico e muitas outras coisas em arquivos .sqlite. Infelizmente, com o acréscimo e exclusões de informações, esses arquivos acabam ficando fragmentados internamente.

    A dica a seguir executa uma espécia de defragmentação nesses arquivos .sqlite.

    O tutorial é o seguinte:

    1 – Instalar o sqlite3.
    sudo aptitude install sqlite3

    2 – Via terminal, acessar a pasta do Firefox no seu /home
    cd ~/.mozilla/firefox/nome_doido.default

    3 – Digite a linha abaixo no terminal, depois feche o Firefox e só então aperte o ENTER para executar o comando.
    for i in *.sqlite; do sqlite3 $i vacuum; done

    No meu perfil, o tamanho do diretório passou de 167700 para 159432 Kb. Isso deve deixar o Firefox um pouco mais rápido na inicialização, pois tem menos coisas para ler.

    Observação: O passo 1 é para o Ubuntu. Se usar a dica em outra distribuição, verificar qual é o comando correto para instalar o programa, bem como ver se o nome do pacote está correto.

    Tema: Silver is the New Black. Blog no WordPress.com.

    Seguir

    Obtenha todo post novo entregue na sua caixa de entrada.