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 utiliza una computadora Linux o semejante 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 utiliza para iniciar sesión. Además 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, a modo de ejemplo, se pueden establecer y adjuntar a ellos. En realidad, se pueden etiquetar fragmentos de información totalmente 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 equipos que disponen muchas cuentas de usuario configuradas. Pero inclusive para la computadora Linux de un solo usuario, siempre es interesante saber qué está pasando debajo del capó.
El campo GECOS
Hubo un tiempo en que 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 utilizar las credenciales de una cuenta en el sistema GECOS.
El campo GECOS se creó para guardar esas credenciales. Ese mismo requisito de nicho ha pasado a la historia hace mucho tiempo, y el campo GECOS se ha reutilizado para guardar otros datos relacionados con el propietario de la cuenta de usuario. Puede que tenga un nuevo trabajo, pero conserva su antiguo nombre. Aún se llama campo GECOS.
El campo se almacena en el /etc/passwd
archivo, 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.
RELACIONADO: Cómo utilizar el comando finger en Linux
El comando chfn
los chfn
(cambiar la información del dedo) le posibilita 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.
los chfn
El comando 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 averiguar sobre el propietario de la cuenta de usuario «dave». Para obtener la máxima información, usaremos el -l
(formato largo) opción:
finger dave -l
Esto es lo que pudo hallar:
Recupera el nombre de usuario de la cuenta, el directorio de inicio y el shell predeterminado. Todos estos están relacionados con el usuario. cuenta. No se refieren a la persona real que utiliza esa cuenta. Podemos utilizar el chfn
comando para guardar información sobre la persona real.
chfn dave
Usando chfn
de esta forma se inicia un procedimiento breve e interactivo. Se le pedirá que ingrese un valor de datos para cada información que pueda 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 retendrá el valor entre corchetes.
La información que ingresamos fue:
- Número de habitación: 512
- Teléfono del trabajo: 555-4567
- Teléfono de casa: 555-5432
Vamos a chequear eso finger
recoge esa nueva información:
finger dave -l
Sí, lo hace. Pero es factible que haya notado que no solicitó cambiar el nombre completo. Solo hará eso si utiliza sudo
. Pero no tenemos que pasar por todo chfn
sesión de nuevo, solo debido a que nos olvidamos de utilizar sudo
. Podemos cambiar cualquiera de los valores de los datos individualmente.
Cambiar los valores de los datos individuales
Podemos determinar el nombre completo para el propietario de la cuenta de usuario usando el -f
(nombre completo) opción, junto 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 usar la -o
(número de habitación de la oficina) en lugar de la -r
opción. Más sobre esto en breve. Por ahora, para ver las alternativas para su versión de chfn
, utilizar:
man chfn
Para cambiar el número de teléfono de la oficina, utilice el -w
(teléfono de trabajo) opción:
sudo chfn -w 555-1122 dave
Y en resumen, para cambiar el número de teléfono de la casa utilice el -h
(número de teléfono particular) opción:
sudo chfn -h 555-6576 dave
Usemos finger
nuevamente para ver si se han aceptado todos esos cambios:
finger dave -l
Éxito. Todos esos comandos han funcionado y los valores de los datos se han actualizado.
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. Debes utilizar sudo
cuando lo hace, pero esa es la única diferencia. Veamos qué datos están configurados para la cuenta de usuario mary:
finger mary -l
La información predeterminada frecuente se establece para esta cuenta de usuario. Agreguemos a la data:
sudo chfn mary
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.
Espera un momento, ¿cuál es ese último elemento, llamado «Otro»?
no es compatible con todas las versiones de chfn
, y solo lo ves si usas sudo
, es por ello que 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.
Versiones de chfn
que apoyan el campo «Otro» además proporcionan la -o
(otra) opción para cambiar este valor de forma directa. Es por el conflicto entre -o
para «número de oficina» y -o
para «otros» que usan algunos sistemas -r
para «número de habitación».
Podemos ver los datos almacenados para la cuenta de usuario mary 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 determinar el campo «otro» de forma directa usando el -o
(otra alternativa:
sudo chfn -o "HTG Freelancer" dave
Y podemos verificar los datos de la cuenta de usuario Dave usando el less
mando:
less /etc/passwd
[asswd in a terminal window” width=”646″ height=”382″ />
That raises an obvious question. If your version of chfn
doesn’t support the “Other” field, how do you change it? We can do that with the usermod
command.
The usermod Command
The usermod
command allows you to modify aspects of a user account through such actions as adding or remove the user account from groups, and changing their default shell. It can also be used to directly manipulate the GECOS field.
Let’s take a closer look at the line in the /etc/passwd
file for user account mary. We’ll use grep to isolate that line for us. This will work because user names have to be unique. There can only be one user account called mary.
grep mary /etc/passwd
The fields in the etc/passwd
file are displayed. A colon “:
” is used as the field separator. from left to right, the fields are:
- The account user name.
- An “x” which indicates the password for this user account is held encrypted in the
/etc/shadow
file. - The user ID for the mary user account.
- The group ID for the mary user account.
- The GECOS field.
- The path to the home directory for the mary user account.
- The shell that is started when the owner of the mary account logs in.
A comma “,” is used as the separator for the data values within the GECOS field. The values within the GECOS field are, from left to right:
- Full Name.
- Room (or office) number.
- Work telephone number.
- Home telephone number.
- Other information.
Note that the usermod
command sets the entire GECOS field to the new value you provide. If all you provide is the full name of the person, then the only thing in the GECOS field will be the full name. This means you have to provide any existing data values that you wish to keep.
Here’s an example. The user Mary has been promoted, and she is going to move to the fourth floor. She’s getting a new office number, a new work telephone number, and we’re going to add in her middle name. Her “Other” field value is also going to change. Although her home telephone number is not going to change, we must provide it in the string to usermod
.
We need to use the -c
(comment) option and we need to run the command with sudo
.
sudo usermod -c "Mary Carol Quinn,405,5559654,555-7704,Linux Advocate" mary
Using grep
to report on the contents of the /etc/passwd
file for mary, shows us the new values have been added.
grep mary /etc/passwd
RELATED: Add a User to a Group (or Second Group) on Linux
All is Flux, Nothing Abides
Inaccurate data is worthless. When the information about people changes—office moves, name changes, role titles—you can easily update their meta-data to reflect the current position.