La otra bola de cristal

Averigua la fecha de instalación de tu linux

¿Nunca os habéis preguntado desde cuánto hace que tenéis instalada vuestra distribución de linux? ¿2 meses, 1 año, 5?

Mentalmente y basándonos en algunos recuerdos podemos hacer un cálculo aproximado, pero a veces esos recuerdos pueden ser confusos o quizás con tanta prueba de instalación y desinstalación de distribuciones varias uno pierde ya la cuenta del tiempo que lleva con la actual.

A modo de curiosidad quise saber si existía alguna manera así que me lancé a la aventura de encontrar esta información y la encontré.

Existen varias maneras, una de ellas es conociendo la fecha de creación del sistema de ficheros o las particiones como /boot o la partición raíz.

Y esto lo podemos saber con los comandos dumpe2fs o tune2fs:

dumpe2fs -h /partición | grep created

o

tune2fs -l /partición | grep created

Por ejemplo, mi partición de Archlinux se encuentra en /dev/sda2:

dumpe2fs -h /dev/sda2 | grep created
dumpe2fs 1.42.1 (17-Feb-2012)
Filesystem created:       Mon Dec 26 21:50:56 2011

Y Debian, ¿cuándo instalé Debian?

tune2fs -l /dev/sda5 | grep created
Filesystem created:       Fri Dec 30 20:12:32 2011

Mis instalaciones son muy recientes, pues en diciembre del año pasado es cuando decidí borrarlo todo y empezar de 0 con Arch y Debian.

¿Y tú, desde cuando tienes tu actual distribución instalada?

Fuentes: Michalins on.* – Determining the age of a Linux installation, Server Fault – How to determine the “age” of a linux system since installation?

¿Desde cuándo no apagas tu ordenador?

Existen algunos comandos que nos pueden mostrar cuanto tiempo lleva encendida nuestra máquina.

Uno de ellos es:

uptime

19:11:06 up  2:00,  3 users,  load average: 0.00, 0.03, 0.06

Lo que nos muestra uptime es:

La hora actual: 19:11:06

El tiempo que lleva encendido o cuánto hace que se arrancó: 2:00

Los usuarios conectados: 3

Carga media del sistema en los últimos 1, 5 y 15 minutos: 0.00, 0.03, 0.06

who

El comando who se utiliza para saber quien está conectado al sistema, pero también podemos obtener información más específica combinando algunas de sus opciones.

En este caso en particular podremos saber cuando se encendió la máquina por última vez:

who -b

arranque del sistema 2012-03-16 17:10

Como podéis ver, si lo único que queremos consultar es desde cuando lleva encendido, se expone de una manera muy explícita.

Sin embargo estos comandos no son los únicos, hay otros que aunque se utilicen para otras funciones también podemos encontrar información al respecto, por ejemplo: last, finger usuario o pinky usuario, w o algunas otras combinaciones con who.

4 alternativas para generar contraseñas aleatorias en linux

Si no somos muy creativos a la hora de crear contraseñas, en linux tenemos algunas utilidades que nos pueden ayudar, hoy te presento 4 alternativas para generar tus passwords desde la terminal.

pwgen

Según el man de la aplicación genera contraseñas para que sean fáciles de memorizar por los humanos haciéndolas lo más seguras posibles.

Si lanzamos pwgen sin opciones nos mostrará unas cuantas alternativas a elegir, estas contraseñas pueden contener mayúsculas, minúsculas y números al azar, si no queremos complicarnos demasiado tan sólo tenemos que elegir una cualquiera.

Pero si queremos ser un poco más específicos con la creación de un password aleatorio estas son algunas de sus opciones más interesantes:

pwgen -0 Genera contraseñas sin ningún número.
pwgen -A Genera contraseñas sin mayúsculas.
pwgen -B No incluye ciertos caracteres para no confundirnos, por ejemplo 0 (cero) y O (o mayúscula).
pwgen -c Genera contraseñas que incluyan al menos una letra en mayúscula.
pwgen -n Genera contraseñas que incluyan al menos un número.
pwgen -y Genera contraseñas que incluyan al menos un símbolo.
pwgen -s Genera contraseñas más seguras y más difíciles de memorizar.

Su uso sería:

pwgen opción longituddelpassword númerodecontraseñas

Las combinaciones son múltiples, por ejemplo queremos una contraseña que incluya números y símbolos que sea de 12 caracteres y muestre un máximo de 10 passwords aleatorios:

pwgen -n -y 12 10

También podemos usar pwgen sin ninguna opción pero especificando la longitud y el número de alternativas:

pwgen 12 10

makepasswd

Genera y/o encripta contraseñas.

Si lo usamos sin ninguna opción adicional nos muestra una única combinación de letras y números, si nos convence podemos adoptarla, si no podemos volver a ejecutar el comando y que nos ofrezca otra.

Pero al igual que pwgen también podemos ser un poco más específicos en la creación de las contraseñas, algunas opciones:

makepasswd – -chars=N Genera contraseñas con un determinado número de caracteres.
makepasswd – -count=N Genera las contraseñas que le indiquemos ya que por defecto es una.
makepasswd – -crypt Genera una contraseña aleatoria y al lado nos muestra su encriptación.
makepasswd – -crypt-md5 Genera una contraseña aleatoria y al lado nos la muestra encriptada en md5.
makepasswd – -string Genera contraseñas a partir de una palabra, frases…

Pongamos como ejemplo que queremos crear una contraseña de 12 caracteres a partir de la dirección de este blog y que nos muestre 6 alternativas:

makepasswd – -chars=12 – -count=6 – -string=laotraboladecristal.com

gpw

Quizás sea el más sencillo de todos ya que como argumento opcional sólo podemos utilizar el número de contraseñas a generar y la longitud, aparte que sólo construye los passwords a partir de letras, no utiliza ni símbolos ni números.

Por defecto su uso sería:

gpw

Si queremos generar 5 contraseñas de 13 caracteres:

gpw 5 13

apg

Como última opción, pero no por ello la peor tenemos apg.

Al ejecutar el programa por primera vez sin ninguna opción adicional nos pide que introduzcamos algo al azar para generar las contraseñas.

Pero también hay varias opciones para ser más selectivos con la creación de passwords, algunas de ellas:

apg -a 0 Genera contraseñas pronunciables.
apg -a 1 Genera contraseñas impronunciables.
apg -n Número de contraseñas a generar.
apg -m Número mínimo de caracteres que ha de contener la contraseña.
apg -x Número máximo de caracteres que ha de contener la contraseña.
apg -M S Que incluya símbolos.
apg -M N Que incluya números.
apg -M C Que incluya mayúsculas.

Vamos a crear seis contraseña que sean pronunciables que contenga un máximo de 14 caracteres y que incluya mayúsculas:

apg -a 0 -n 6 -x 14 -M C

Aunque creo que es más factible utilizar la opción -a 1 que genera contraseñas que incluyen mayúsculas, números y símbolos.

Podéis leer el man de cada una de las 4 utilidades o hacer aplicación – -help para obtener más información, ayuda y otras opciones que podéis utilizar con cada una de ellas.

Apagado programado y automático en linux

Muchas veces nos quedamos por la noche con el pc viendo alguna película o descargando algún archivo, en muchas de esas ocasiones nos quedamos dormidos sin darnos cuenta o es hora de retirarse pero la descarga no ha terminado, así que dejamos nuestra máquina encendida durante todo la noche o día hasta que volvemos a ponernos frente a ella nuevamente.

Pero tenemos la posibilidad de programar el apagado automático si no queremos dejar nuestro ordenador encendido.

El comando shutdown nos permite indicar cuando queremos que se apague la máquina, podemos programar una hora determinada o un espacio de tiempo.

Si deseamos apagar el ordenador a las 4 y cuarto de la mañana, hora que posiblemente muchos ya estamos en plena fase REM:

shutdown -h 4:15

Si lo que queremos es que se apague en unos 50 minutos:

shutdown -h +50

Si deseamos cancelar el apagado programado:

CTRL+C

O

shutdown -c

Todo esto está muy bien si nos acordamos previamente de lanzar estas órdenes, así que una buena solución y alternativa sería que esto se hiciera automáticamente cada noche.

Para ello haremos uso de crontab que nos sirve para programar tareas automáticamente.

Añadiremos las tareas que que queramos programar y automatizar con:

crontab -e

Hay que tener en cuenta la manera en como vamos a expresar lo que queremos que realice y se hace en el siguiente orden:

minutos horas día mes díadelasemana comandoaejecutar

No es imprescindible rellenar todos los campos, porque a lo mejor queremos que esa tarea la realice todos los días y no algunos en particular (por ejemplo en el caso de realizar copias de seguridad un día a la semana, etc), en ese caso los sustituiremos con un * que sería todos los valores posibles.

Queremos que nuestro ordenador se apague cada día a las 3:30 de la mañana, añadiremos al fichero:

30 3 * * * /sbin/shutdown -h now

30: los minutos.
3: la hora.
Como no queremos que sea ningún día determinado sustituimos día, mes y día de la semana con *.
/sbin/shutdown -h now: Comando a ejecutar, en este caso apagar el sistema.

Guardamos.

Una nueva tarea ha sido añadida, así que ahora ya no tenemos que preocuparnos más, cada día a esa hora nuestra máquina se apagará automáticamente.

Para ver la lista de tareas que tenemos programadas:

crontab -l

Si deseamos quitar el apagado automático o cualquier otra acción que hayamos programado basta con hacer:

crontab -r

Pon fecha de caducidad a las contraseñas de usuario

Por defecto, cuando creamos un usuario y contraseña ésta son “para toda la vida” a no ser que un día decidamos cambiarla o que hagamos uso de la caducidad de contraseñas, es decir, que sean válidas durante un tiempo determinado y una vez transcurrido dejan de serlo y hay que modificarlas.

Uno de los comandos (no el único) que nos permiten hacer esto es chage, con el cual podremos definir y obligarnos u obligar a otros usuarios del sistema a cambiar su contraseña cada X tiempo.

Vamos a obtener información de un usuario cualquiera:

chage -l usuario

(Es una ele minúscula)

Último cambio de contraseña					:dic 30, 2011
La contraseña caduca					: nunca
Contraseña inactiva					: nunca
La cuenta caduca						: nunca
Número de días mínimo entre cambio de contraseña		: 0
Número de días máximo entre cambio de contraseñas		: 99999
Número de días de aviso antes de que expire la contraseña	: 7

Aquí podemos ver cuando fue la última vez que cambió su contraseña, cuando caduca, cuando la contraseña quedará inactiva, cuando caducará la cuenta, días mínimos que han de transcurrir para poder modificarla, el número de días que la contraseña es válida y con cuantos días de antelación nos avisará antes de que llegue la fecha de caducidad.

Así es como se mostraría por defecto tal cual creamos la cuenta, nunca caducará a no ser que indiquemos lo contrario y será válida durante muchos, muchos días.

El comando chage -l usuario lo podemos ejecutar sin ser root para visualizar nuestro propio usuario, pero no para ver las opciones de otros usuarios, esto sólo lo podrá hacer el administrador, igual que añadir cambios.

Vamos a realizar algunos ajustes, por ejemplo que el password caduque a los 60 días, o lo que es lo mismo que la contraseña sea válida durante 60 días, lo haremos con la opción:

-M número de días usuario

chage -M 60 usuario

Para deshacer los cambios:

chage -M99999 usuario

Si queremos que el aviso de cambio de contraseña sea 3 días antes, en lugar de 7, que es como estaba definido por defecto:

-W número de días usuario

chage -W 3 usuario

Y si además no queremos que los usuarios estén modificando su clave cada día vamos a establecer un mínimo de días que han de transcurrir antes de poder cambiarla, pongamos 10 como ejemplo:

-m número de días usuario

chage -m 10 usuario

Observad la diferencia entre las mayúsculas y las minúsculas, en este caso M y m no son lo mismo.

Para deshacer los cambios:

chage -m 0 usuario

Podemos hacerlo todo en una sola línea:

chage -M 60 -W 3 -m 10 usuario

Y vemos como ha cambiado:

Último cambio de contraseña					:dic 30, 2011
La contraseña caduca					: feb 28, 2012
Contraseña inactiva					: nunca
La cuenta caduca						: nunca
Número de días mínimo entre cambio de contraseña		: 10
Número de días máximo entre cambio de contraseñas		: 60
Número de días de aviso antes de que expire la contraseña	: 3

Otra opción que también podemos definir, es que una cuenta de usuario quede inactiva, si por ejemplo tenemos un usuario temporal, estableceremos la fecha en la cual su cuenta dejará de ser válida:

-E número de días usuario

o

-E YYYY-MM-DD usuario

Se puede especificar de dos maneras, por el número de días o la fecha exacta. Tenemos un usuario llamado Paco y su cuenta estará activa hasta el 30 de Marzo:

chage -E 2012-03-30 Paco

Para deshacer los cambios:

chage -E -1 Paco

Y por último nos quedan las contraseñas inactivas, si establecemos como días inactivos 5 desde que la contraseña caducó y el usuario no se loguea durante esos 5 días, y lo hace 10 días después la cuenta será bloqueada y será root quien tenga que desbloquearla, pero si llega la fecha de caducidad y nos logueamos dentro de esos 5 días sí podremos acceder pero deberemos cambiar la contraseña al momento. Si el valor es 0 la cuenta no caduca pero igualmente deberemos añadir un nuevo password. En resumen, el password hay que cambiarlo de todas maneras, la diferencia está en si la cuenta quedará inactiva o no.

-I 5 usuario

(es una i mayúscula)

chage -I 5 usuario

Para deshacer los cambios y volverlo a dejar tal cual estaba:

chage -I -1 usuario

Otra maneras aún más rápida de hacerlo en vez de ir definiendo las opciones es con:

chage usuario

Con esto el sistema nos va preguntando y sólo hemos de introducir los valores o presionar ENTER para que coja la configuración por defecto o los que ya estaban definidos:

Cambiando la información de la edad para pinkpanth
Introduzca el nuevo valor, o presione ENTER para el predeterminado

	Duración mínima de la contraseña [0]:
	Duración máxima de la contraseña [99999]:
	Último cambio de contraseña (AAAA-MM-DD) [2011-12-30]:
	Aviso de caducidad de la contraseña [7]:
	Contraseña inactiva [-1]:
	Fecha de caducidad de la cuenta (AAAA-MM-DD) [1969-12-31]: