7.4.2.2.- Uso de chage

El comando chage nos permite modificar los parámetros de las cuentas relacionados con la expiración de ésta. Las cuentas de Linux se pueden configurar para que expiren automáticamente si se cumple cualquiera de estas condiciones:

  • Si la contraseña no experimentó ningún cambio en el periodo de tiempo especificado.
  • La fecha del sistema sobrepasó el tiempo predeterminado.

Estos parámetros los podemos controlar con la utilidad chage, que posee la siguiente sintaxis:

chage_1

Veamos los parámetros del programa que modifican las acciones del comando:

Mostrar información

chage_l

Ejemplo:

chage_l_ejemplo

Definir el tiempo mínimo entre cambios de contraseña:

chage_m

Ejemplo:

chage_m_ejemplo

Definir el tiempo máximo entre cambios de contraseña:

 chage_m

Ejemplo:

chage_m_ejemplo

tux_maestro_derSi el usuario cambia una contraseña antes de la fecha límite, el contador se reiniciará con la fecha de cambio de contraseña.

Definir la fecha del último cambio de contraseña:

chage_d

Ejemplo:

chage_d_ejemplo

Definir el máximo de días inactivo:

chage_i

Ejemplo:

chage_i_ejemplo

Definir la fecha de expiración:

chage_e

Ejemplo:

chage_e_ejemplo

Definir el número de días de aviso:

chage_w

Ejemplo:

chage_w_ejemplo

Normalmente solo root puede utilizar el comando chage. La única excepción a esta regla tiene lugar cuando se emplea la opción -l, que permite a los usuarios normales consultar la información de expiración de su cuenta.

Modificar directamente los ficheros de configuración de la cuenta

Los ficheros de configuración del usuario se pueden modificar directamente. Los ficheros /etc/passwd y /etc/shadow controlan la mayoría de los aspectos de las funcionalidades básicas de la cuenta. Estos ficheros consisten en un conjunto de líneas, una por cada cuenta. Las líneas comienzan por el nombre de usuario y continúa con un conjunto de campos, separados por dos puntos (:). Muchos de estos elementos los podemos modificar con usermod o passwd. Una entrada típica de /etc/passwd se parece a esto:

etc_passwd_1Cada campo tiene un significado específico:etc_passwd_2

etc_passwd_3

etc_passwd_4

etc_passwd_5

etc_passwd_6

etc_passwd_7

 etc_passwd_8

Podemos modificar directamente uno de estos campos, aunque en un sistema con contraseñas ocultas, posiblemente no desee modificar el campo de contraseñas; debería realizar los cambios relacionados con la contraseña mediante passwd para que éstas se puedan encriptar y almacenar adecuadamente en /etc/shadow. Como ocurre con los cambios iniciados a través de usermod, es mejor cambiar /etc/passwd directamente sólo cuando el usuario en cuestión no está dentro del sistema, para evitar que el cambio interrumpa una sesión activa.

Como pasa con /etc/passwd, /etc/shadow se puede editar directamente. Una línea /etc/shadow tiene el siguiente aspecto:

 etc_shadow_1

 La mayoría de los campos corresponde a opciones que hemos definido con chage, aunque algunas se definen con passwd, useradd o usermod. Veamos el significado de cada campo:

etc_shadow_2

etc_shadow_3

tux_maestro_derSi ha olvidado la contraseña de root de un sistema, puede iniciar con un sistema de recuperación de emergencia de emergencia y copiar el contenido del campo de la contraseña de una cuenta cuya contraseña si que recordemos. Después podemos arrancar normalmente, acceder como root y cambiar la contraseña. En un aprieto real, podemos eliminar el contenido del campo de la contraseña, lo que tiene como resultado una cuenta root sin contraseña (o sea, no le solicitará la contraseña para acceder).  si hacemos esto, asegúrese de cambiar inmediatamente la contraseña de root tras reiniciar.

etc_shadow_4

etc_shadow_5

 etc_shadow_6

etc_shadow_7

Linux permite un espacio entre la expiración de una cuenta y su desactivación total. Una cuenta expirada no se podrá utilizar, o bien requerirá que el usuario cambie de contraseña justamente tras acceder. En ambos casos, su contraseña permanecerá intacta. La contraseña de una cuenta desactivada se elimina, por lo que ésta no podrá ser utilizada hasta que el administrador del sistema la vuelva a  activar.

etc_shadow_8

 Generalmente es mejor dejar que los valores /etc/shadow los modifiquen con los comandos usermod y chage, puesto que nos puede resultar complicado configurarlos manualmente. Por ejemplo es fácil olvidarse de los años bisiestos o detalles similares cuando se calcula una fecha con el número de días desde el 1 de enero de 1970. Del mismo modo no podemos modificar la contraseña encriptada directamente, sino, a través  de passwd o alguna utilidad similar. Podemos utilizar crypt o las opciones de cortar y pegar, pero nos resultará más sencillo utilizar passwd. También es arriesgado copiar contraseñas encriptadas desde otros sistemas, pues eso significa que los usuarios tendrán las mismas contraseñas en ambos sistemas, un hecho obvio para todo aquél que se haga con ambas listas de contraseñas encriptadas.

tux_maestro_derEl fichero /etc/shadow se suele almacenar con permisos muy restrictivos, como rw------- (600), cuyo propietario es root (los permisos concretos varían de una distribución a otra), esto evita que los usuarios distintos de root lean el fichero y obtengan la lista de contraseñas, aunque estén encriptadas. Contrariamente, /etc/passwd debe ser legible para los usuarios normales y suele tener permisos rw-r--r-- (644). Si modifica manualmente /etc/shadow, asegúrese de que posee los permisos correctos cuando haya terminado.