Cómo cambiar los datos del usuario con chfn y usermod en Linux

Hay más en una cuenta de usuario que un nombre de usuario. Aprenda a configurar y cambiar todos los metadatos asociados con una cuenta de usuario de Linux desde la línea de comandos.

¿Lo que hay en un nombre?

Si usa una computadora Linux o similar a Unix, tendrá una cuenta de usuario. El nombre dado a la cuenta es su nombre de cuenta de usuario. Este es el nombre que usa para iniciar sesión. También es (por defecto) el nombre de su grupo de inicio de sesión y el nombre de su directorio de inicio. Todos usan el mismo identificador.

Existe otro conjunto de información que se puede almacenar para cada cuenta de usuario. Los datos del mundo real, como el nombre completo de la persona, su número de oficina y su número de teléfono del trabajo, por ejemplo, se pueden definir y adjuntar a ellos. De hecho, se pueden etiquetar fragmentos de información completamente arbitrarios en las cuentas de los usuarios.

En términos prácticos, esto será más útil para los administradores de sistemas que se ocupan de los equipos que tienen muchas cuentas de usuario configuradas. Pero incluso para la computadora Linux de un solo usuario, siempre es interesante saber qué está pasando debajo del capó.

El campo GECOS

En un tiempo, los pioneros de Unix no tenían impresora propia. Tuvieron que poner en cola sus trabajos de impresión a un Energia General mainframe que estaba ejecutando el Sistema operativo integral de General Electric (GECOS). Para lograr eso, los usuarios de los sistemas Unix necesitaban almacenar y usar las credenciales de una cuenta en el sistema GECOS.

El campo GECOS se creó para almacenar esas credenciales. Ese mismo requisito de nicho ha pasado a la historia hace mucho tiempo, y el campo GECOS se ha reutilizado para almacenar otros datos relacionados con el propietario de la cuenta de usuario. Puede que tenga un nuevo trabajo, pero conserva su antiguo nombre. Todavía se llama campo GECOS.

El campo se almacena en el archivo / etc / passwd, junto con otra información sobre la cuenta de usuario:

El nombre de usuario de la cuenta.
El ID de usuario.
El ID de grupo.
La ruta al directorio de inicio de la cuenta de usuario.
El shell que se inicia cuando el usuario inicia sesión.

Aquí es donde el dedo comando y el meñique comando recuperar la información que muestran.

  Cómo jugar Frostpunk en Linux

El comando chfn

El chfn (cambiar la información del dedo) le permite establecer y modificar la información almacenada dentro del campo GECOS. La información se almacena como una lista separada por comas dentro del campo.

El comando chfn ya estaba presente en Ubuntu 18.04.1 y Manjaro 18.1.0. Tenía que estar instalado en Fedora 31. Use este comando para instalarlo:

sudo dnf install util-linux-user

sudo dnf instala util-linux-user en una ventana de terminal

Veamos qué dedo puede averiguar sobre el propietario de la cuenta de usuario «dave». Para obtener la máxima información, usaremos la opción -l (formato largo):

finger dave -l

finger dave -l en una ventana de terminal

Esto es lo que pudo encontrar:

Salida de finger dave -l en una ventana de terminal

Recupera el nombre de usuario de la cuenta, el directorio de inicio y el shell predeterminado. Todos estos están relacionados con la cuenta de usuario. No se refieren a la persona real que usa esa cuenta. Podemos usar el comando chfn para almacenar información sobre la persona real.

chfn dave

chfn dave en una ventana de terminal

El uso de chfn de esta manera inicia un proceso breve e interactivo. Se le solicita que ingrese un valor de datos para cada pieza de información que el campo GECOS puede contener. El valor actual de cada valor de datos se muestra entre paréntesis []. Si desea mantener los datos actuales, puede presionar la tecla “Enter” y se mantendrá el valor entre corchetes.

El proceso interactivo de chfn en una ventana de terminal

La información que ingresamos fue:

Número de habitación: 512
Teléfono del trabajo: 555-4567
Teléfono de casa: 555-5432

Sesión de chfn completada en una ventana de terminal

Comprobemos que el dedo recoge esa nueva información:

finger dave -l

finger dave -l en una ventana de terminal

Sí lo hace. Pero es posible que haya notado que no solicitó cambiar el nombre completo. Solo hará eso si usa sudo. Pero no tenemos que volver a pasar por toda la sesión de chfn, solo porque nos olvidamos de usar sudo. Podemos cambiar cualquiera de los valores de los datos individualmente.

Cambiar los valores de datos individuales

Podemos establecer el nombre completo para el propietario de la cuenta de usuario usando la opción -f (nombre completo), junto con sudo.

sudo chfn -f "Dave McKay" dave

sudo chfn -f

Y si lo comprobamos una vez más con el dedo:

Salida del dedo en una ventana de terminal

Podemos ver que se ha agregado el nombre completo.

Hay otras opciones para cambiar el número de habitación, el número de teléfono de la casa y el número de teléfono del trabajo. Para cambiar el número de habitación (oficina), use la opción -r (número de habitación):

sudo chfn -r 633 dave

sudo chfn -r 633 dave en una ventana de terminal

Tenga en cuenta que en algunas distribuciones, puede usar la opción -o (número de habitación de la oficina) en lugar de la opción -r. Más sobre esto en breve. Por ahora, para ver las opciones para su versión de chfn, use:

man chfn

Para cambiar el número de teléfono de la oficina, use la opción -w (teléfono del trabajo):

sudo chfn -w 555-1122 dave

sudo chfn -w 555-1122 dave en una ventana de terminal

Y finalmente, para cambiar el número de teléfono de la casa, use la opción -h (número de teléfono de la casa):

sudo chfn -h 555-6576 dave

sudo chfn -h 555-6576 dave en una ventana de terminal

Usemos el dedo nuevamente para ver si se han aceptado todos esos cambios:

finger dave -l

finger dave -l en una ventana de terminal

Éxito. Todos esos comandos han funcionado y los valores de los datos se han actualizado.

  Cómo jugar Overwatch en Linux

Uso de chfn en otras cuentas de usuario

Tanto para cambiar nuestra propia información, ¿qué hay de cambiar la información de GECOS para otros usuarios? Eso es igual de fácil. Debe usar sudo cuando lo haga, pero esa es la única diferencia. Veamos qué datos están configurados para la cuenta de usuario mary:

finger mary -l

finger mary -l en una ventana de terminal

La información predeterminada habitual se establece para esta cuenta de usuario. Agreguemos a la información:

sudo chfn mary

sudo chfn mary en una ventana de terminal

Pasaremos por la misma sesión que hicimos antes, y se nos solicitará un valor de datos para cada pieza de información que se pueda almacenar. Y debido a que usamos sudo, se nos solicita el valor de los datos del nombre completo.

Sesión completada para sudo chfn mary en una ventana de terminal

Espera un momento, ¿qué es ese último elemento, llamado «Otro»?

no es compatible con todas las versiones de chfn, y solo lo ve si usa sudo, razón por la cual no lo vimos antes cuando (deliberadamente) no usamos sudo con:

chfn dave

El valor de datos «Otro» puede contener cualquier cosa que desee. No tiene ningún uso prescrito o esperado.

Las versiones de chfn que admiten el campo «Otro» también proporcionan la opción -o (otro) para cambiar este valor directamente. Es debido al conflicto entre -o para «número de oficina» y -o para «otro» que algunos sistemas usan -r para «número de habitación».

Podemos ver los datos almacenados para la cuenta de usuario mary en el archivo / etc / paswd, usando less:

less /etc/passwd

lass / etc / passwd en una ventana de terminal

En los sistemas que lo admiten (consulte la página de manual de su versión de chfn) puede establecer el campo «otro» directamente usando la opción -o (otro):

sudo chfn -o "HTG Freelancer" dave

sudo chfn -o

Y podemos verificar los datos de la cuenta de usuario dave usando el comando less:

less /etc/passwd

menos / etc / p <span data-mce-type =[asswdenunaventanadeterminal”width=”646″height=”382″/>[asswdinaterminalwindow”width=”646″height=”382″/>

Eso plantea una pregunta obvia. Si su versión de chfn no es compatible con el campo «Otro», ¿cómo lo cambia? Podemos hacer eso con el comando usermod.

El comando usermod

El comando usermod te permite modificar aspectos de una cuenta de usuario mediante acciones como agregar o eliminar la cuenta de usuario de los grupos y cambiar su shell predeterminado. También se puede utilizar para manipular directamente el campo GECOS.

  Cómo hacer que Ubuntu Linux sea más ligero

Echemos un vistazo más de cerca a la línea en el archivo / etc / passwd para la cuenta de usuario mary. Usaremos grep para aislar esa línea para nosotros. Esto funcionará porque los nombres de usuario deben ser únicos. Solo puede haber una cuenta de usuario llamada mary.

grep mary /etc/passwd

grep mary / etc / passwd en una ventana de terminal

Se muestran los campos del archivo etc / passwd. Se utilizan dos puntos «:» como separador de campo. de izquierda a derecha, los campos son:

El nombre de usuario de la cuenta.
Una «x» que indica que la contraseña de esta cuenta de usuario se mantiene cifrada en el archivo / etc / shadow.
El ID de usuario de la cuenta de usuario de mary.
El ID de grupo de la cuenta de usuario de mary.
El campo GECOS.
La ruta al directorio de inicio de la cuenta de usuario de mary.
Shell que se inicia cuando el propietario de la cuenta mary inicia sesión.

Se utiliza una coma «,» como separador de los valores de datos dentro del campo GECOS. Los valores dentro del campo GECOS son, de izquierda a derecha:

Nombre completo.
Número de habitación (u oficina).
Número de teléfono del trabajo.
Numero de telefono de casa.
Otra información.

Tenga en cuenta que el comando usermod establece todo el campo GECOS en el nuevo valor que proporciona. Si todo lo que proporciona es el nombre completo de la persona, lo único en el campo GECOS será el nombre completo. Esto significa que debe proporcionar los valores de datos existentes que desee conservar.

He aquí un ejemplo. La usuaria Mary ha sido ascendida y se trasladará al cuarto piso. Obtendrá un nuevo número de oficina, un nuevo número de teléfono del trabajo y agregaremos su segundo nombre. Su valor de campo «Otro» también cambiará. Aunque el número de teléfono de su casa no va a cambiar, debemos proporcionarlo en la cadena para usermod.

Necesitamos usar la opción -c (comentario) y necesitamos ejecutar el comando con sudo.

sudo usermod -c "Mary Carol Quinn,405,5559654,555-7704,Linux Advocate" mary

sudo usermod -c

El uso de grep para informar sobre el contenido del archivo / etc / passwd para mary nos muestra que se han agregado nuevos valores.

grep mary /etc/passwd

grep mary / etc / passwd en una ventana de terminal

Todo es flujo, nada permanece

Los datos inexactos no tienen valor. Cuando cambia la información sobre las personas (mudanzas de oficina, cambios de nombre, títulos de funciones), puede actualizar fácilmente sus metadatos para reflejar la posición actual.