jueves, 1 de noviembre de 2012

Indispensable para el administrador

Todo administrador de sistemas linux debería tener unas herramientas básicas para facilitar su tarea cuando usa el terminal, por ejemplo:

Mejora del comando top usando htop, las diferencias principales entre top y htop son:

  • En htop puedes desplazarte por la lista vertical y horizontalmente para ver todos los procesos y líneas completas de comandos.
  • El top está sujeto a un retardo por cada tecla no asignada presiones (especialmente molesto cuando tecleas secuencias de escape múltiples por accidente).
  • htop se inicia más rápido (top parece recoger datos durante algún tiempo antes de mostrar nada).
  • En htop no es necesario que escribas el número de proceso para matar un proceso, en top si es necesario.
  • En htop no es necesario escribir el número de proceso o el valor de prioridad para cambiar la prioridad (renice) de un proceso, en top si.
  • htop soporta el uso del ratón, top no
  • top es más veterano, y por lo tanto, más utilizado y probado. 
En estas imágenes podemos ver la diferencia




     
Cuando estás auditando un sistema te dejas las retinas a base de revisar logs, para hacer la tarea más sencilla podemos usar ccze, que es un coloreador de logs robusto y modular con plugins para apm, Exim, fetchmail, httpd, postfix, procmail, squid, syslog, ulogd, vsftpd, xferlog, y más.

Aqui vemos 2 ejemplos el primero la salida del log de dmesg normal y la siguiente pasandolo a través de ccze, juzgad vosotros mismos.




Y que no se nos olvide el coloreado del prompt, sobre todo para el usuario root para asi poder distinguir cuando somos root y usuarios normales, y sobre todo en que sistema remoto estamos jajaja (Este post es un copy & paste puro y duro del post de siddharta que podeis ver aquí, y como estaba tan claro me he permitido reproducirlo, gracias siddharta por este post.

    

Cada usuario del sistema tiene su propio archivo de configuración para el shell Bash, y en dicho archivo se guardan varias opciones y variables, entre ellas está la sección para resaltar el color del prompt.
El archivo es /home/nombre-del-usuario/.bashrc . Este archivo está oculto porque tiene un punto al inicio del nombre. Es necesario abrir dicho archivo de manera normal (es decir sin usar sudo, gksudo, kdesudo) y buscar la siguiente sección:

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

A la última línea se le debe quitar el signo numeral (#) para que ya no sea omitida esa instrucción, debiendo quedar así:

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes

Posteriormente se guardan los cambios y cierra el archivo. Para que los cambios tengan efecto es necesario ejecutar lo siguiente en la terminal:
cd
. .bashrc
ó en su lugar:
cd
source .bashrc

De inmediato se observará que ahora el prompt se muestra de color verde, contrastando con el resto del texto de la terminal. Esta configuración aplicará tanto en terminales virtuales -por ejemplo Konsole en KDE, ó Terminal en GNOME- como para las Consolas (tty1, tty2, tty3, etc.), incluso desde una sesión vía SSH.
Si se desea usar otro color que no sea verde es necesario volver a abrir el archivo y buscar esta sección:
if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

En esa sección se indica qué se va a mostrar en el prompt y con qué colores. La segunda línea es la que se debe modificar, y a continuación resalto con negrita dónde está el código para el color:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

Ese valor se puede cambiar por alguno de los mostrados en la siguiente lista:
Negro          0;30          Gris obscuro   1;30
Rojo           0;31          Rojo claro     1;31
Verde          0;32          Verde claro    1;32
Café           0;33          Amarillo       1;33
Azul           0;34          Azul claro     1;34
Púrpura        0;35          Púrpura claro  1;35
Cian           0;36          Cian claro     1;36
Gris claro     0;37          Blanco         1;37

De igual manera, tras hacer el cambio hay que guardar el archivo y volver a cargar la configuración como se explicó anteriormente.
En lo personal me gusta usar color verde sobre el fondo negro para mi propia sesión. Y prefiero usar el color rojo claro para cuando estoy trabajando como root.
Para modificar el prompt de root se debe abrir (como root) el archivo /root/.bashrc y buscar la siguiente sección:
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color)
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    ;;
*)
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    ;;
esac

y escribir el signo numeral (#) al principio de cada línea, quedando así:
# set a fancy prompt (non-color, unless we know we "want" color)
#case "$TERM" in
#xterm-color)
#    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
#    ;;
#*)
#    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
#    ;;
#esac

Posteriormente se busca la siguiente sección:
# Comment in the above and uncomment this below for a color prompt
#PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

y se elimina el signo numeral (#) de la segunda línea, quedando así:
# Comment in the above and uncomment this below for a color prompt
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

en esa misma segunda línea se cambia el valor 1;32 (verde claro) por 1;31 (rojo claro), quedando así:
# Comment in the above and uncomment this below for a color prompt
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

Se guardan los cambios y se cierra el archivo. La próxima vez que en la terminal se inicie sesión como root se observará que ahora el prompt para root se muestra en color rojo claro:
sudo su

Así es más fácil identificar, con la ayuda del color rojo, que se está usando la sesión de root, y por lo tanto todo debe hacerse con más cuidado.

   
    
   

No hay comentarios:

Publicar un comentario