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

Una ventana de terminal de Linux en una computadora portátil estilo Ubuntu.Fatmawati Achmad Zaenuri / Shutterstock

Una cuenta de usuario es más que un nombre de usuario. Descubra cómo configurar y modificar todos los metadatos asociados con una cuenta de usuario de Linux desde la línea de comandos.

¿Lo que hay en un nombre?

Si está utilizando una computadora tipo Linux o Unix, tendrá una cuenta de usuario. El nombre dado a la cuenta es su nombre de cuenta de usuario. Este es el nombre con el que está iniciando sesión. También es (por defecto) el nombre de su grupo de conexión y el nombre de su directorio personal. 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, el número del trabajo y el número de teléfono del trabajo, por ejemplo, se pueden definir y adjuntar. Esto se debe a que se pueden etiquetar fragmentos de información completamente arbitrarios en las cuentas de los usuarios.

Concretamente, esto será más útil para los administradores de sistemas que se ocupan de equipos en los que están configuradas muchas cuentas de usuario. Pero incluso para la computadora Linux de un solo usuario, sigue siendo interesante saber qué está pasando bajo el capó.

El dominio GECOS

En un momento, los pioneros de Unix no tenían una impresora propia. Tuvieron que posponer sus trabajos de impresión a un Energia General mainframe que ejecutaba el El sistema operativo completo de General Electric (GECOS). Para hacer esto, los usuarios de sistemas Unix tenían que almacenar y usar credenciales para una cuenta en el sistema GECOS.

El campo GECOS se creó para almacenar estas credenciales. Este requisito de nicho desapareció hace mucho tiempo, y el campo GECOS se ha reasignado para almacenar otros datos relacionados con el propietario de la cuenta de usuario. Puede que tenga un nuevo trabajo, pero mantiene su antiguo nombre. Todavía se llama campo GECOS.

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

  • El nombre de usuario de la cuenta.
  • El ID de usuario.
  • El identificador de grupo.
  • 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 orden y el dedo meñique comando recuperar la información que muestran.

El comando chfn

los chfn (editar la información del dedo) le permite definir y modificar la información almacenada en el control GECOS. La información se almacena como una lista separada por comas en el campo.

los 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

Veamos que finger puede preguntar sobre el propietario de la cuenta de usuario «dave». Para obtener la mayor cantidad de información posible, utilizaremos el -l opción (formato largo):

finger dave -l

Esto es lo que pudo encontrar:

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

chfn dave

En ayuda de chfn de esta forma se inicia un proceso breve e interactivo. Se le solicita que ingrese un valor de datos para cada dato que puede contener el campo GECOS. 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 paréntesis.

La información que ingresamos fue:

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

Vamos a ver finger recupera esta nueva información:

finger dave -l

Si. Pero es posible que haya notado que no pidió cambiar el nombre completo. Solo hará esto si usa sudo. Pero no tenemos que pasar por todo chfn sesión de nuevo, solo porque nos olvidamos de usar sudo. Podemos cambiar cualquiera de los valores de los datos individualmente.

Editar valores de datos individuales

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

sudo chfn -f "Dave McKay" dave

Y si lo comprobamos una vez más con finger:

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), utilice el -r (número de habitación) opción:

sudo chfn -r 633 dave

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

man chfn

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

sudo chfn -w 555-1122 dave

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

sudo chfn -h 555-6576 dave

usemos finger nuevamente para ver si todos estos cambios fueron aceptados:

finger dave -l

Éxito. Todos estos comandos funcionaron y los valores de los datos se actualizaron.

Usar chfn en otras cuentas de usuario

También podríamos cambiar nuestra propia información, ¿qué hay de cambiar la información de GECOS para otros usuarios? Es igual de fácil. Tienes que usar sudo cuando lo hace, pero esa es la única diferencia. Veamos qué datos están configurados para la cuenta de usuario de Mary:

finger mary -l

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

sudo chfn mary

Realizaremos la misma sesión que antes, y se nos pedirá que ingresemos un valor de datos para cada información que se pueda almacenar. Y porque usamos sudo , se nos solicita el valor de los datos del nombre completo.

Espere un momento, ¿qué es este último elemento, llamado «Otro»?

no es compatible con todas las versiones de chfn, y solo lo ves si usas sudo, por eso 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 un uso prescrito o previsto.

Versiones de chfn que admiten el campo «Otro» también proporcionan la -o (otra) opción para modificar este valor directamente. Es por el conflicto entre -o para «número de oficina» y -o para «otros» que utilizan algunos sistemas -r para «número de habitación».

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

less /etc/passwd

En sistemas que lo admitan (consulte la man página para su versión de chfn ) puede definir el campo «otro» directamente utilizando el -o (otra opción:

sudo chfn -o "HTG Freelancer" dave

Y podemos verificar los datos de la cuenta de usuario de Dave usando el less pedido:

less /etc/passwd

moins /etc/p<span data-mce-type=[asswdinaterminalwindow”width=”646″height=”382″/>[asswdinaterminalwindow”width=”646″height=”382″/>[asswddansunefenêtredeterminal”width=”646″height=”382″/>[asswdinaterminalwindow”width=”646″height=”382″/>

Esto plantea una pregunta obvia. Si su versión de chfn no admite el campo «Otro», ¿cómo cambiarlo? Podemos hacerlo con el usermod pedido.

El comando usermod

los usermod el comando te permite modificar aspectos de una cuenta de usuario a través de acciones como agregar o eliminar cuentas de usuario de grupos y cambiar su shell predeterminado. También se puede utilizar para manejar directamente el control GECOS.

Echemos un vistazo más de cerca a la línea en el /etc/passwd archivo para la cuenta de usuario mary. usaremos grep para aislar esta 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

Los campos de la etc/passwd se muestran el archivo. Un colono «:”Se utiliza como separador de campos. 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 /etc/shadow archivar.
  • El ID de usuario de la cuenta de usuario de Mary.
  • El ID de grupo de la cuenta de usuario de Mary.
  • El dominio GECOS.
  • La ruta al directorio de inicio de la cuenta de usuario de Mary.
  • El shell que se inicia cuando el propietario de la cuenta Mary inicia sesión.

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

  • Apellido y Nombre.
  • Número de habitación (u oficina).
  • Número de teléfono del trabajo.
  • Número de teléfono de casa.
  • La otra información.

Tenga en cuenta que el usermod El comando establece todo el campo GECOS con el nuevo valor que proporcionas. 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.

Aquí un ejemplo. La usuaria Mary ha sido ascendida y pasará al cuarto piso. Obtiene un nuevo número de oficina, un nuevo número de teléfono comercial y agregaremos su segundo nombre. El valor de su campo «Otro» también cambiará. Aunque su número de teléfono personal no cambia, debemos proporcionarlo en la cadena para usermod.

Tenemos que usar el -c (comentario) y tenemos que ejecutar el comando con sudo.

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

En ayuda de grep informe sobre el contenido de la /etc/passwd file for mary, nos muestra que se han agregado los nuevos valores.

grep mary /etc/passwd

Todo fluye, nada queda

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

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *