Linux

Shell - Enviar fichero adjunto con el comando mail

En un sistema *n*x, si no disponemos de herramientas para enviar un mail con adjunto, podemos hacerlo directamente con el comando mail de la siguiente forma:

cat fichero.tar.gz | uuencode fichero.tar.gz | mail micorreo@dominio.com

Shell - Matar todos los procesos de un usuario.

Para matar todos los procesos relacionados con un usuario,
simplemente:

kill -9 `ps -aef|grep nombreusuario|awk '{ print $2 }'`

Sería elegante ponerse antes en contacto con el usuario, o no...
También aplicaría para cualquier cadena que quisiéramos poner en el grep.

Linux - tar extraer un solo fichero.

Pare extraer un único fichero de un tar, poniendo como ejemplo el fichero etc/default/sysstat de confit.tar.gz


$ tar -ztvf config.tar.gz
$ tar -zxvf config.tar.gz etc/default/sysstat
$ tar -xvf {tarball.tar} {path/to/file}

También podríamos hacer:


tar --extract --file={tarball.tar} {file}
Extract a directory called css from cbz.tar:
$ tar --extract --file=cbz.tar css

Linux mount Windows Share + directorio con acento = codifiación no valida

Un pequeño detalle a la hora de montar un share windows.
En primer lugar, configuré el share en el fstab de la siguiente forma:


//servidor/share /mnt/shareWindows smbfs username=badorius 0 0

Al navegar por el sistema de ficheros compartido, me encontraba con que los directorios o ficheros con acentos se mostraban mal (tanto por consola como por dolphin/konqueror/nautilus) algo pareceido a:


/mnt/shareWindows/Tecnolog?a/Informaci?n/Administraci?n.txt

Linux Alsa default device

Tras reinstalar mi Debian, me encontré que al tener varios dispositivos de audio USB, Alsa no me cogía por defecto el que yo quería. En este caso me cogía UM1, que es un controlador Midi, con el resultado: debian sin sonido.

Al hacer un alsamixer mostraba el dispositivo UM1:

AlsaMixer

Al hacer un cat /proc/asound/cards, veo que el primero de la lista es UM1 con la posición 0:


server:~# cat /proc/asound/cards
0 [UM1 ]: USB-Audio - UM-1

SSH sin password (Intercambio de claves)

En este articulo se describe como establecer una relación de confianza entre dos nodos vía SSH, intercambiando claves.
De esta forma podemos lanzar comandos de un nodo a otro sin introducir contraseña, muy útil para scripting.

En el ejemplo pondermos los nodos A y B.

Generamos las claves en el nodo A (sin contraseña):


a@A:~> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/a/.ssh/id_rsa):
Created directory '/home/a/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Buscar y reemplazar con vi

Para realizar un reemplazo de un string desde el editor VI, nos ponemos en modo comandos (ESC) y lanzamos:


:1,$ s/TEXTO_VIEJO/TEXTO_NUEVO/g

Donde :1 es el valor de la línea de donde empezará la busqueda y $ el valor de la línea donde terminará la búsqueda. En VI $ es la última línea.

Linux configurar wget con proxy

Si tenemos una máquina con linux detrás de un proxy el cual nos pide autenticar, la manera de configurar el wget sería editando el fichero /etc/wgetrc.


vi /etc/wgetrc

La parte que tendríamos que añadir sería:


http_proxy = http://servidorproxy.midominio.com:PUERTOPROXY/
ftp_proxy = http://servidorproxy.midominio.com:PUERTOPROXY/
proxy_user=usuarioProxy
proxy_password=passwordUsuario

Linux instalar Fuentes MS truetype msttcorefonts

Cuando uno está tan bien acostumbrado con distribuciones como debian o derivados, hay necesidades que son realmente muy fáciles de solucionar, que quiero decir? pues que en este caso, si necesitamos las fuentes truetype de M$, con debian bastaría con un aptitude install msttcorefonts, pero cuando tenemos que pelearnos con distros como RH o SLES, lo tenemos mas complicado.

Tras darle unas cuantas vueltas, la manera mas rápida y fácil de instalar las msstt fonts, ha sido ejecutando el script adjunto en el post (por motivos del hosting lo pongo en .txt y no .sh).

Sería tan fácil como:

Linux enjaular/chroot a un usuario con Jailkit

Tras la necesidad de crear un usuario que solo tenga acceso a los logs del sistema, me planteé la idea de enjaular a un usuario.

Para versiones nuevas de ssh, parece que permite hacer chroot de un usuario de una manera fácil y nativa del demonio, como la versión del servidor con la que estoy trabajando, no tiene la última versión de SSH y tampoco es una debian (:______O), me veo obligado a realizarlo con jailkit, creando un paquete RPM del código fuente.

Los pasos que se han seguido, son los siguientes.

Nos vamos al directorio, donde nos bajaremos el código fuente del jailkit:

Distribuir contenido