Instalar Microsoft ODBC 17 para SQL-Server en Ubuntu 17.10

Una entrada rápida ¿Cómo se instala el driver ODBC 17 para SQL-Server de Microsoft en un equipo con Ubuntu? No es algo muy habitual usar SQL-Server en Linux, pero por si os interes la cosa va así:

sudo su 
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

#PARA OTRA VERSIÓN
#CAMBIA EL 17.10 DE LA URL
#POR LO QUE CORRESPONDA
curl https://packages.microsoft.com/config/ubuntu/17.10/prod.list > /etc/apt/sources.list.d/mssql-release.list

exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql
# LO SIGUIENTE ES PARA LOS COMANDOS bcp Y sqlcmd
# ES OPCIONAL PERO MUY RECOMENDABLE
sudo ACCEPT_EULA=Y apt-get install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# PARA LOS ENCABEZADOS unixODBC
# ES OPCIONAL, PERO DE NUEVO RECOMENDABLE
sudo apt-get install unixodbc-dev
Anuncios

Linux: script para crear usuarios automáticamente con contraseñas aleatorias desde una lista dada en CSV.

Vamos con un script para automatizar tareas. Tenemos un CSV, le llamaremos user.csv, con los siguientes datos: Nombre, Primer Apellido y Usuario. Algo tal que así

Manuel,Garcia,ManuG1
Pedro,Rodriguez,PredroR2
Maria,Abalo,MariaA45
Josefa,Perez,JosefP21
Marta,Rios,MartaR91

La idea del script es la siguiente: recorre el fichero csv y crea a los usuarios con ese nombre y apellido y ese código de usuario. Asigna una contraseña generada de forma aleatoria y redirige la salida a un fichero para poder notificar a los usuarios creados su usuario y contraseña.

#!/bin/bash

OLDIFS=$IFS
IFS=","

while read firstname lastname userid 
do 
     PS=$(openssl rand -base64 12)   
     useradd -c "${firstname} ${lastname}" -p $PS -d /home/"${userid}" -s /bin/bash "${userid}"            
     echo "Usuario: ${userid} - Contraseña: $PS ....." >> resultado.txt 
done < user.csv

La opción de crear los usuarios con contraseña no es recomendable en todos los ámbitos por temas de seguridad, lo he hecho en este caso porque el ejemplo real en el que lo hice lo había requerido así el cliente, pero según la política y el contexto de seguridad no es algo recomendable en todos los casos porque podrían ser vistas por algún usuario no autorizado, así que aunque la generes así es mejor obligar a los usuarios a cambiarla. Para crearlo sin contraseña en la instrucción useradd quita el parámetro -p $PS, la línea de encima que genera el password (que ya sería inútil) y el $PS en la salida.

Hacer que un fichero en Linux no pueda ser borrado ni modificado.

A veces nos interesa que en nuestro sistema Linux haya algún fichero inmutable, que no pueda ser borrado o modificado incluso aunque se intente con permisos de superusuario. ¿Es posible? Sí, con el comando chattr y usando la opción +i. Por ejemplo:

chattr +i nombre_del_fichero

Si lo aplicamos a una carpeta esto haría no solo que la carpeta no pueda ser borrado o editada sino que tampoco se puedan añadir nuevos ficheros a la misma o borrarlos, pero sí se podrían editar estos ficheros. ¿Se puede hacer que estos tampoco puedan ser editados? Sí, habría que aplicar el comando de forma recursiva sobre la carpeta para que afecte a todo lo que esta contiene:

chattr +i -RV nombre_de_carpeta

¿Y para quitar este flag y poder borrarlo o editarlo? En lugar de +i se usa -i:

chattr -i nombre_del_fichero

¿Esto tiene alguna utilidad? Pues sí. Por ejemplo podéis hacer que el fichero de usuarios o de contraseñas del sistema sea inmutable, de forma que nadie podría darse de alta sin antes modificar los permisos del fichero para ello, dando un punto extra a la seguridad.

Mostrar asteriscos en la consola de Mac o de Linux al escribir una contraseña

Una de las cosas que más despistan cuando se empieza a trabajar con la línea de comandos de sistemas operativos basados en UNIX es que al poner una contraseña no se muestra nada. La parte buena es que si tenemos a alguien mirando por encima de nuestros hombros no le damos una pista de la longitud de nuestra contraseña, la mala es que no sabemos si hemos tecleado mal. Pero ¿se puede hacer que muestre unos asteriscos cuando la introducimos? Se puede:

Lo primero, editar el fichero de sudoers:

sudo visudo

Lo siguiente, buscar la línea que pone esto:

Defaults        env_reset

Lo tercero, modificar la línea para que luzca así:

Defaults        env_reset,pwfeedback

Esto funciona en la mayoría de linux modernos y en los Mac con OS X superior al 10.8, así que si quieres esta ayuda visual seguramente podrás disfrutarla.

Linux: crear una contraseña aleatoria simple

Hemos visto un par de formas de generar claves aleatorias en Linux. Vamos a ver otra que no es especialmente compleja. No es lo más seguro para generar una serie de claves aleatorias ni da un resultado especialmente recordable, pero para un apuro te permite salir del paso en la consola cualquier distribución y sin instalar software:

date|md5sum

Tan simple como esto: tomamos la fecha en tiempo UNIX y le aplicamos la función de resumen md5.

Utilizar sudo sin contraseña

Arracamos 2018 con más Linux ¿Se puede configurar el sistema para no tener que poner la contraseña cuando invoquemos un comando precedido de sudo? Sí, se puede. ¿Se debe? No, eso debilita la seguridad y no es nada recomendable. ¿Entonces no se puede? Sí, se puede pero no se debe.

La cosa es editar el fichero /etc/sudoers utilizando el siguiente comando:

sudo visudo

Una vez lo estemos editando buscamos la línea que pone root ALL=(ALL) ALL y debajo añadimos la siguiente, cambiando nuestro_usuario por el nombre de usuario que corresponda.

nuestro_usuario ALL=(ALL) NOPASSWD: ALL

También podemos aplicarlo a grupos, para ello debemos poner el símbolo % seguido del nombre del grupo:

%nuestro_grupo ALL=(ALL) NOPASSWD: ALL

Y otra opción es permitirlo sólo a un comando, o serie de comandos. En ese caso cambiamos el ALL que va después de NOPASSWD por el comando en cuestión. En el ejemplo veremos como hacerlo para /bin/kill:

nuestro_usuario ALL=(ALL) NOPASSWD: /bin/kill

Y una vez guardados los cambios el sistema nos permitirá usar sudo sin contraseña. Y vuelvo a repetir: NO SE DEBE HACER. Pero si queréis hacerlo, ahí tenéis el cómo.

Generar contraseñas seguras en Linux con APG

Ya vimos en el pasado cómo generar contraseñas en linux con mkpasswd, hoy veremos otro método. APG, abreviatura de Automatic Password Generator, viene instalado en Ubuntu y sus derivados. Es un programa pensado para generar contraseñas “memorizables“. Si lo ejecutas a secas te pedirá una “raíz“, una serie de datos con los que trabajar, y en base a eso creará una contraseña “memorizable“, y con “memorizable” quiero decir que junto a la contraseña te mostrará una transcripción fonética para que la recuerdes mejor.

APG Ejemplo
Ejemplo de APG

También puedes generar contraseñas totalmente aleatorias usando el comando apg a -1, que ofrece resultados de entre 8 y 10 caracteres.

Ejemplo APG 2
Ejemplo de APG con a -1