0% encontró este documento útil (0 votos)
157 vistas19 páginas

Ver usuarios en Ubuntu 16.04

Este documento proporciona instrucciones en 5 pasos para configurar la seguridad básica de un nuevo servidor Ubuntu 16.04. Los pasos incluyen crear un usuario normal, otorgarle privilegios de superusuario, configurar la autenticación de llaves SSH y deshabilitar la autenticación por contraseña para aumentar la seguridad del servidor.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
157 vistas19 páginas

Ver usuarios en Ubuntu 16.04

Este documento proporciona instrucciones en 5 pasos para configurar la seguridad básica de un nuevo servidor Ubuntu 16.04. Los pasos incluyen crear un usuario normal, otorgarle privilegios de superusuario, configurar la autenticación de llaves SSH y deshabilitar la autenticación por contraseña para aumentar la seguridad del servidor.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Introducción

Cuando se crea un nuevo servidor de Ubuntu 16.04, hay algunos pasos de


configuración que se deben tener desde el principio como parte de la
configuración básica. Esto aumentará la seguridad y la usabilidad de su servidor y
le dará una base sólida para las acciones posteriores.

Paso Uno — Sesión de Root


Para iniciar sesión en el servidor, necesitará conocer la dirección IP pública del
servidor. También necesitará la contraseña o, si ha instalado una llave SSH para
la autentificación, la llave privada para la cuenta "root" del usuario. Si aún no ha
iniciado sesión en el servidor, es posible que desee seguir el primer tutorial de
esta serie, ¿Cómo conectarse a un Doplet con SSH?, que cubre este proceso en
detalle.

Si no está conectado a su servidor, siga adelante e inicie sesión como el


usuario root usando el siguiente comando (sustituya la palabra resaltada con la
dirección IP pública del servidor):

 ssh root@ip_del_servidor

Complete el proceso de inicio de sesión mediante la aceptación de la advertencia


sobre la autenticidad del host, si aparece, a continuación, proporcionar su acceso
como usuario root (contraseña o llave privada). Si es la primera vez que inicia
sesión en el servidor con una contraseña, también se le pedirá que cambie la
contraseña de root.

Acerca de Root
El usuario root es el usuario de administración en un entorno Linux que tiene muy
amplios privilegios. Debido a los privilegios elevados de la cuenta root, en realidad
se desaconseja usarlo de forma regular. Esto se debe en parte del poder inherente
a la cuenta de root es la capacidad de hacer cambios muy destructivos, incluso
por accidente.

El siguiente paso es la creación de una cuenta de usuario alternativa con un


reducido margen de influencia para el trabajo del día a día. Le enseñamos cómo
obtener mayores privilegios durante los momentos en que los necesite.

Paso Dos — Crear un nuevo usuario


Una vez que se ha iniciado sesión como root, estamos preparados para agregar
la nueva cuenta de usuario que usaremos para iniciar sesión de ahora en
adelante.

En este ejemplo se crea un nuevo usuario llamado "Sammy", pero debe


reemplazarlo con un nombre de usuario que le guste:

 adduser sammy

Se le harán algunas preguntas, comenzando con la contraseña de la cuenta.

Introduzca una contraseña segura y, opcionalmente, complete la información


adicional si lo desea. Esto no es necesario y sólo puede pulsar ENTER en cualquier
campo que desee omitir.

Paso Tres — Privilegios de Root


Ahora, tenemos una nueva cuenta de usuario con privilegios de cuenta regulares.
Sin embargo, es posible que a veces tenga que realizar tareas administrativas.

Para evitar tener que cerrar la sesión de nuestro usuario normal y volver a iniciar
sesión como la cuenta root, podemos establecer lo que se conoce como
"superusuario" o privilegios de root para nuestra cuenta normal. Esto permitirá a
nuestro usuario normal ejecutar comandos con privilegios administrativos
colocando la palabra sudo antes de cada comando.

Para añadir estos privilegios a nuestro nuevo usuario, tenemos que añadir el
nuevo usuario al grupo "sudo". Por defecto, en Ubuntu 16.04, los usuarios que
pertenecen al grupo "sudo" se les permite usar el comando sudo.

Como root, ejecute este comando para añadir el nuevo usuario al


grupo sudo (sustituya la palabra resaltada con su nuevo usuario):

 usermod -aG sudo sammy


¡Ahora su usuario puede ejecutar comandos con privilegios de superusuario! Para


obtener más información acerca de cómo funciona esto, echa un vistazo a
este tutorial de Sudoers.

Si se desea aumentar la seguridad de su servidor, siga el resto de los pasos de


este tutorial.
Paso Cuatro — Añadir la autenticación de llave
pública (Recomendado)
El siguiente paso en la seguridad de su servidor es configurar la autenticación de
llave pública para su nuevo usuario. Esta configuración aumentará la seguridad de
su servidor al requerir una llave SSH privada para iniciar sesión.

Generar un par de Llaves


Si aún no dispone de un par de llaves SSH, que consiste en una llave pública y
privada, es necesario generar una. Si ya tiene una llave que desea utilizar, vaya al
paso Copiar la Llave Pública.

Para generar un nuevo par de llaves, ingrese el siguiente comando en la terminal


de su máquina local (es decir, su ordenador):

 ssh-keygen

Asumiendo que su usuario local se llama "usuariolocal", verá una salida que se
parece a lo siguiente:

ssh-keygen output
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):
Pulse la tecla Intro para aceptar el nombre de archivo y la ruta (o introduzca un
nuevo nombre).

A continuación, se le pedirá una frase de contraseña para asegurar la llave. Puede


introducir una frase de contraseña o dejar en blanco la frase de contraseña.

Nota: Si deja la frase de contraseña en blanco, usted será capaz de utilizar la llave
privada para la autenticación sin introducir una frase. Si introduce una frase de
contraseña, necesitará ambas, la llave privada y la contraseña para iniciar sesión.
Asegurar sus llaves con frases de contraseña es más seguro, pero ambos métodos
tienen sus usos y son más seguros que la autenticación de contraseña básica.

Esto genera una llave privada, id_rsa y una llave pública, id_rsa.pub en el
directorio .ssh del directorio home del usuariolocal. ¡Recuerde que la llave privada
no debe ser compartida con alguien que no debería tener acceso a los servidores!

Copiar la Llave Pública


Después de generar un par de llaves SSH, deseará copiar su llave pública en su
nuevo servidor. Cubriremos dos maneras fáciles de hacer esto.

Opción 1: Usar SSH para copiar el id


Si su máquina local tiene instalada el script ssh-copy-id, puede utilizarlo para
instalar su llave pública en cualquier usuario para el que tenga credenciales de
inicio de sesión.

Ejecute el script ssh-copy-id especificando el usuario y la dirección IP del


servidor en el que desea instalar la llave, como esto:

 ssh-copy-id sammy@ip_del_servidor

Después de proporcionar su contraseña en consola, su llave pública se agregará


al archivo .ssh/authorized_keys del usuario remoto. Ahora se puede usar la
llave privada correspondiente para iniciar sesión en el servidor.

Opción 2: Instalar manualmente la llave


Suponiendo que generó un par de llaves SSH utilizando el paso anterior, utilice el
siguiente comando en la terminal de su máquina local para imprimir su llave
pública (id_rsa.pub):

 cat ~/.ssh/id_rsa.pub

Esto debería imprimir su llave SSH pública, que debería ser similar a la siguiente:

id_rsa.pub contents
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c
47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xS
bUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56
oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK
9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWk
YS/1rggpFmu3HbXBnWSUdf localuser@[Link]
Seleccione la llave pública y cópiela en el portapapeles.

Para habilitar el uso de la llave SSH para autenticarse como el nuevo usuario
remoto, debe agregar la llave pública a un archivo especial en el directorio
principal del usuario.

En el servidor, como usuario root, escriba el siguiente comando para cambiar


temporalmente al nuevo usuario (sustituya su propio nombre de usuario):
 su - sammy

Ahora estarás en el directorio de inicio de tu nuevo usuario.

Cree un nuevo directorio llamado .ssh y restrinja sus permisos con los siguientes
comandos:

 Mkdir ~ / .ssh

 Chmod 700 ~ / .ssh

Ahora abra un archivo en .ssh llamado authorized_keys con un editor de texto.


Usaremos nano para editar el archivo:

 Nano ~ / .ssh / authorized_keys


Ahora inserte su llave pública (que debería estar en su portapapeles) pegándola


en el editor.

Pulse CTRL-x para salir del archivo, luego pulse y para guardar los cambios
realizados, luego ENTERpara confirmar el nombre del archivo.

Ahora restringiremos los permisos del archivo authorized keys con este comando:

 chmod 600 ~/.ssh/authorized_keys


Escriba este comando una vez para volver al usuario root:

 exit

Ahora su llave pública está instalada, y puede utilizar las llaves de SSH para iniciar
sesión como su usuario.

Para leer más acerca de cómo funciona la autenticación de llaves, lea este
tutorial: Cómo configurar la autenticación basada en llaves SSH en un servidor
Linux.
A continuación, le mostraremos cómo aumentar la seguridad de su servidor
desactivando la autenticación de contraseña.

Paso Cinco — Deshabilitar la Autenticación de


Contraseña (Recomendado)
Ahora que su nuevo usuario puede usar las llaves SSH para iniciar sesión, puede
aumentar la seguridad de su servidor desactivando la autenticación de sólo
contraseña. Al hacerlo, restringirá el acceso SSH a su servidor únicamente a la
autenticación de llave pública. Es decir, la única manera de iniciar sesión en su
servidor (aparte de la consola) es poseer la llave privada que se combina con la
llave pública que se instaló.

Nota: Desactive la autenticación de contraseña si ha instalado una llave pública para


su usuario, tal como se recomienda en la sección anterior, paso cuatro. ! De lo
contrario, se bloqueará fuera de su servidor!

Para deshabilitar la autenticación de contraseña en su servidor, siga estos pasos.

Como root o su nuevo usuario de sudo, abra la configuración del daemon


de SSH:

 sudo nano /etc/ssh/sshd_config


Busque la línea que especifica PasswordAuthentication, borre el comentario


eliminando el # anterior, luego cambie su valor a "no". Debería verse así después
de haber realizado el cambio:

sshd_config — Desactive la autenticación de contraseña


PasswordAuthentication no
Aquí hay otras dos configuraciones que son importantes para la autenticación de
solo llave y se establecen de forma predeterminada. Si no ha modificado este
archivo antes, no necesita cambiar esta configuración:

sshd_config — Valores predeterminados importantes


PubkeyAuthentication yes
ChallengeResponseAuthentication no
Cuando termine de realizar sus cambios, guarde y cierre el archivo, usando el
método que usamos anteriormente (pulsar CTRL-X, luego Y, después ENTER).

Escriba esto para recargar el deamon SSH


 sudo systemctl reload sshd

La autenticación de contraseña está deshabilitada. Su servidor ahora sólo es


accesible con la autenticación de llave SSH.

Paso Seis — Registro de prueba


Ahora, antes de salir del servidor, debe probar su nueva configuración. No
desconecte hasta que confirme que puede iniciar sesión correctamente a través
de SSH.

En una nueva terminal en su máquina local, inicie sesión en su servidor


utilizando la nueva cuenta que creamos. Para ello, utilice este comando (sustituya
su nombre de usuario y la dirección IP del servidor):

 ssh sammy@ip_del_servidor

Si agregó la autenticación de llave pública a su usuario, tal como se describe en


los pasos cuatro y cinco, su llave privada se utilizará como autenticación. De lo
contrario, se le pedirá la contraseña de su usuario.

Nota sobre la autenticación de llaves: Si creó el par de llaves con una frase de
contraseña, se le pedirá que introduzca la contraseña para su llave. De lo contrario, si
el par de llaves es sin contraseña, debe iniciar sesión en su servidor sin una
contraseña.

Una vez que se proporciona la autenticación al servidor, se registrará como su


nuevo usuario.

Recuerde, si necesita ejecutar un comando con privilegios de root, escriba "sudo"


antes de que así:

 sudo comando_a_ejecutar

Paso Siete — Configurar un Firewall Básico


Los servidores Ubuntu 16.04 pueden usar el firewall UFW para asegurarse de que
sólo se permiten conexiones a ciertos servicios. Podemos configurar un firewall
básico fácilmente utilizando esta aplicación.

Diferentes aplicaciones pueden registrar sus perfiles con UFW después de la


instalación. Estos perfiles permiten al UFW gestionar estas aplicaciones por su
nombre. OpenSSH, el servicio que nos permite conectarnos a nuestro servidor
ahora, tiene un perfil registrado con UFW.

Puede ver esto escribiendo:

 sudo ufw app list


Output
Available applications:
OpenSSH
Necesitamos asegurarnos de que el firewall permita conexiones SSH para que
podamos volver a conectarnos la próxima vez. Podemos permitir estas conexiones
escribiendo:

 sudo ufw allow OpenSSH


Posteriormente, podemos habilitar el firewall escribiendo:

 sudo ufw enable


Escriba "y" y presione ENTER para continuar. Puede ver que las conexiones SSH
todavía se permiten escribiendo:

 sudo ufw status


Output
Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Si instala y configurar servicios adicionales, deberá ajustar la configuración del
firewall para permitir el tráfico aceptable. Puede aprender algunas operaciones
comunes de UFW en esta guía.
Linux es un sistema multiusuario, por lo tanto, la tarea de añadir, modificar, eliminar y en general
administrar usuarios se convierte en algo no solo rutinario, sino importante, además de ser un
elemento de seguridad que mal administrado o tomado a la ligera, puede convertirse en un
enorme hoyo de seguridad. En este manual aprenderás todo lo necesario para administrar
completamente tus usuarios en GNU/Linux.

Clases de usuarios

Los usuarios en Unix/Linux se identifican por un número único de usuario, User ID, UID. Y
pertenecen a un grupo principal de usuario, identificado también por un número único de grupo,
Group ID, GID. El usuario puede pertenecer a más grupos además del principal.

Aunque sujeto a cierta polémica, es posible identificar tres tipos de usuarios en Linux:

Usuario root

 También llamado superusuario o administrador.

 Su UID (User ID) es 0 (cero).

 Es la única cuenta de usuario con privilegios sobre todo el sistema.

 Acceso total a todos los archivos y directorios con independencia de propietarios y


permisos.

 Controla la administración de cuentas de usuarios.

 Ejecuta tareas de mantenimiento del sistema.

 Puede detener el sistema.

 Instala software en el sistema.

 Puede modificar o reconfigurar el kernel, controladores, etc.

Usuarios especiales

 Ejemplos: bin, daemon, adm, lp, sync, shutdown, mail, operator, squid, apache, etc.

 Se les llama también cuentas del sistema.

 No tiene todos los privilegios del usuario root, pero dependiendo de la cuenta asumen
distintos privilegios de root.

 Lo anterior para proteger al sistema de posibles formas de vulnerar la seguridad.

 No tienen contraseñas pues son cuentas que no están diseñadas para iniciar sesiones con
ellas.

 También se les conoce como cuentas de "no inicio de sesión" (nologin).

 Se crean (generalmente) automáticamente al momento de la instalación de Linux o de la


aplicación.
 Generalmente se les asigna un UID entre 1 y 100 (definifo en /etc/[Link])

Usuarios normales

 Se usan para usuarios individuales.

 Cada usuario dispone de un directorio de trabajo, ubicado generalmente en /home.

 Cada usuario puede personalizar su entorno de trabajo.

 Tienen solo privilegios completos en su directorio de trabajo o HOME.

 Por seguridad, es siempre mejor trabajar como un usuario normal en vez del usuario root,
y cuando se requiera hacer uso de comandos solo de root, utilizar el comandosu.

 En las distros actuales de Linux se les asigna generalmente un UID superior a 500.

/etc/passwd

Cualquiera que sea el tipo de usuario, todas las cuentas se encuentran definidas en el archivo de
configuración 'passwd', ubicado dentro del directorio/etc. Este archivo es de texto tipo ASCII, se
crea al momento de la instalación con el usuario root y las cuentas especiales, más las cuentas de
usuarios normales que se hayan indicado al momento de la instalación.

El archivo/etc/passwdcontiene una línea para cada usuario, similar a las siguientes:

root:x:0:0:root:/root:/bin/bash

sergio:x:501:500:Sergio González:/home/sergio:/bin/bash

La información de cada usuario está dividida en 7 campos delimitados cada uno por ':' dos puntos.

/etc/passwd

Campo 1 Es el nombre del usuario, identificador de inicio de sesión (login). Tiene que ser único.

La 'x' indica la contraseña encriptada del usuario, además también indica que se está
Campo 2 haciendo uso del archivo/etc/shadow, si no se hace uso de este archivo, este campo se
vería algo así como: 'ghy675gjuXCc12r5gt78uuu6R'.

Número de identificación del usuario (UID). Tiene que ser único. 0 para root,
generalmente las cuentas o usuarios especiales se numeran del 1 al 100 y las de usuario
Campo 3
normal del 101 en delante, en las distribuciones mas recientes esta numeración
comienza a partir del 500.

Numeración de identificación del grupo (GID). El que aparece es el número de grupo


Campo 4
principal del usuario, pero puede pertenecer a otros, esto se configura en/etc/groups.

Campo 5 Comentarios o el nombre completo del usuario.

Campo 6 Directorio de trabajo (Home) donde se sitúa al usuario después del inicio de sesión.
Campo 7 Shell que va a utilizar el usuario de forma predeterminada.

/etc/shadow

Anteriormente (en sistemas Unix) las contraseñas cifradas se almacenaban en el


mismo/etc/[Link] problema es que 'passwd' es un archivo que puede ser leído por cualquier
usuario del sistema, aunque solo puede ser modificado por root. Con cualquier computadora
potente de hoy en día, un buen programa de descifrado de contraseñas y paciencia es posible
"crackear" contraseñas débiles (por eso la conveniencia de cambiar periódicamente la contraseña
de root y de otras cuentas importantes). El archivo 'shadow', resuelve el problema ya que solo
puede ser leido por root. Considérese a 'shadow' como una extensión de 'passwd' ya que no solo
almacena la contraseña encriptada, sino que tiene otros campos de control de contraseñas.

El archivo/etc/shadowcontiene una línea para cada usuario, similar a las siguientes:

root:ghy675gjuXCc12r5gt78uuu6R:1[Link]-1::

sergio:rfgf886DG778sDFFDRRu78asd:1[Link]-[Link]-1:-1::

La información de cada usuario está dividida en 9 campos delimitados cada uno por ':' dos puntos.

/etc/shadow

Campo 1 Nombre de la cuenta del usuario.

Campo 2 Contraseña cifrada o encriptada, un '*' indica cuenta de 'nologin'.

Días transcurridos desde el 1/ene/1970 hasta la fecha en que la contraseña fue


Campo 3
cambiada por última vez.

Número de días que deben transcurrir hasta que la contraseña se pueda volver a
Campo 4
cambiar.

Número de días tras los cuales hay que cambiar la contraseña. (-1 significa nunca). A
Campo 5
partir de este dato se obtiene la fecha de expiración de la contraseña.

Número de días antes de la expiración de la contraseña en que se le avisará al usuario al


Campo 6
inicio de la sesión.

Días después de la expiración en que la contraseña se inhabilitara, si es que no se


Campo 7
cambio.

Fecha de caducidad de la cuenta. Se expresa en días transcurridos desde el


Campo 8
1/Enero/1970 (epoch).

Campo 9 Reservado.

/etc/group
Este archivo guarda la relación de los grupos a los que pertenecen los usuarios del sistema,
contiene una línea para cada usuario con tres o cuatro campos por usuario:

root:x:0:root

ana:x:501:

sergio:x:502:ventas,supervisores,produccion

cristina:x:503:ventas,sergio

 El campo 1 indica el usuario.

 El campo 2 'x' indica la contraseña del grupo, que no existe, si hubiera se mostraría un
'hash' encriptado.

 El campo 3 es el Group ID (GID) o identificación del grupo.

 El campo 4 es opcional e indica la lista de grupos a los que pertenece el usuario

Actualmente al crear al usuario conuseraddse crea también automáticamente su grupo principal


de trabajo GID, con el mismo nombre del usuario. Es decir, si se añade el usuario 'sergio' también
se crea el /etc/group el grupo 'sergio'. Aun asi, existen comandos de administración de grupos que
se explicarán más adelante.

pwconv y pwunconv

El comportamiento por defecto de todas las distros modernas de GNU/Linux es activar la


protección extendida del archivo/etc/shadow, que (se insiste) oculta efectivamente el 'hash'
cifrado de la contraseña de/etc/passwd.

Pero si por alguna bizarra y extraña situación de compatibilidad se requiriera tener las contraseñas
cifradas en el mismo archivo de/etc/passwdse usaría el comandopwunconv:

#> more /etc/passwd

root:x:0:0:root:/root:/bin/bash

sergio:x:501:500:Sergio González:/home/sergio:/bin/bash

...

(La 'x' en el campo 2 indica que se hace uso de /etc/shadow)

#> more /etc/shadow

root:ghy675gjuXCc12r5gt78uuu6R:1[Link]-1::

sergio:rfgf886DG778sDFFDRRu78asd:1[Link]-[Link]-1:-1::

#> pwunconv
#> more /etc/passwd

root:ghy675gjuXCc12r5gt78uuu6R:0:0:root:/root:/bin/bash

sergio:rfgf886DG778sDFFDRRu78as[Link]Sergio González:/home/sergio:/bin/bash

...

#> more /etc/shadow

/etc/shadow: No such file or directory

(Al ejecutar pwunconv, el archivo shadow se elimina y las contraseñas cifradas 'pasaron' a passwd)

En cualquier momento es posible reactivar la protección de shadow:

#> pwconv

#> ls -l /etc/passwd /etc/shadow

-rw-r--r-- 1 root root 1106 2007-07-08 01:07 /etc/passwd

-r-------- 1 root root 699 2009-07-08 01:07 /etc/shadow

Se vuelve a crear el archivoshadow, además nótese los permisos tan restrictivos (400) que tiene
este archivo, haciendo sumamente difícil (no me gusta usar imposible, ya que en informática
parece ser que los imposibles 'casi' no existen) que cualquier usuario que no sea root lo lea.

/etc/[Link]

En el archivo de configuración/etc/[Link]án definidas las variables que controlan los


aspectos de la creación de usuarios y de los campos deshadowusadas por defecto. Algunos de los
aspectos que controlan estas variables son:

 Número máximo de días que una contraseña es válida PASS_MAX_DAYS

 El número mínimo de caracteres en la contraseña PASS_MIN_LEN

 Valor mínimo para usuarios normales cuando se usauseraddUID_MIN

 El valorumaskpor defecto UMASK

 Si el comandouseradddebe crear el directorio home por defecto CREATE_HOME

Basta con leer este archivo para conocer el resto de las variables que son autodescriptivas y
ajustarlas al gusto. Recúerdese que se usaran principalmente al momento de crear o modificar
usuarios con los comandosuseraddyusermodque en breve se explicaran.

Añadir usuarios conuseradd


useraddoadduseres el comando que permite añadir nuevos usuarios al sistema desde la línea de
comandos. Sus opciones más comunes o importantes son las siguientes:

 -c añade un comentario al momento de crear al usuario, campo 5 de/etc/passwd

 -d directorio de trabajo o home del usuario, campo 6 de/etc/passwd

 -e fecha de expiración de la cuenta, formato AAAA-MM-DD, campo 8 de/etc/shadow

 -g número de grupo principal del usuario (GID), campo 4 de/etc/passwd

 -G otros grupos a los que puede pertenecer el usuario, separados por comas.

 -r crea una cuenta del sistema o especial, su UID será menor al definido
en/etc/[Link] la variable UID_MIN, además no se crea el directorio de inicio.

 -s shell por defecto del usuario cuando ingrese al sistema. Si no se especifica, bash, es el
que queda establecido.

 -u UID del usuario, si no se indica esta opción, automáticamente se establece el siguiente


número disponible a partir del último usuario creado.

Ahora bien, realmente no hay prácticamente necesidad de indicar ninguna opción ya que si
hacemos lo siguiente:

#> useradd juan

Se creará el usuario y su grupo, asi como las entradas correspondientes en /etc/passwd,


/etc/shadow y /etc/group. También se creará el directorio de inicio o de trabajo: /home/juan y los
archivos de configuración que van dentro de este directorio y que más adelante se detallan.

Las fechas de expiración de contraseña, etc. Quedan lo más amplias posibles asi que no hay
problema que la cuenta caduque, asi que prácticamente lo único que faltaría sería añadir la
contraseña del usuario y algún comentario o identificación de la cuenta. Como añadir el password
o contraseña se estudiara en un momento y viendo las opciones con '-c' es posible establecer el
comentario, campo 5 de /etc/passwd:

#> useradd -c "Juan Perez Hernandez" juan

Siempre el nombre del usuario es el último parámetro del comando. Asi por ejemplo, si queremos
salirnos del default, podemos establecer algo como lo siguiente:

#> useradd -d /usr/juan -s /bin/csh -u 800 -c "Juan Perez Hernandez" juan

Con lo anterior estamos cambiando su directorio de inicio, su shell por defautl sera csh y su UID
será el 800 en vez de que el sistema tome el siguiente número disponible.

Modificar usuarios conusermod

Como su nombre lo indica, usermod permite modificar o actualizar un usuario o cuenta ya


existente. Sus opciones más comunes o importantes son las siguientes:
 -c añade o modifica el comentario, campo 5 de/etc/passwd

 -d modifica el directorio de trabajo o home del usuario, campo 6 de/etc/passwd

 -e cambia o establece la fecha de expiración de la cuenta, formato AAAA-MM-DD, campo


8 de/etc/shadow

 -g cambia el número de grupo principal del usuario (GID), campo 4 de/etc/passwd

 -G establece otros grupos a los que puede pertenecer el usuario, separados por comas.

 -l cambia el login o nombre del usuario, campo 1 de/etc/passwdy de/etc/shadow

 -L bloque la cuenta del usuario, no permitiendolé que ingrese al sistema. No borra ni


cambia nada del usuario, solo lo deshabilita.

 -s cambia el shell por defecto del usuario cuando ingrese al sistema.

 -u cambia el UID del usuario.

 -U desbloquea una cuenta previamente bloqueada con la opción -L.

Si quiseramos cambiar el nombre de usuario de 'sergio' a 'sego':

#> usermod -l sego sergio

Casi seguro también cambiará el nombre del directorio de inicio o HOME en /home, pero si no
fuera así, entonces:

#> usermod -d /home/sego sego

Otros cambios o modificaciones en la misma cuenta:

#> usermod -c "supervisor de area" -s /bin/ksh -g 505 sego

Lo anterior modifica el comentario de la cuenta, su shell por defecto que ahora sera Korn shell y su
grupo principal de usuario quedó establecido al GID 505 y todo esto se aplicó al usuario 'sego' que
como se observa debe ser el último argumento del comando.

El usuario 'sego' salió de vacaciones y nos aseguramos de que nadie use su cuenta:

#> usermod -L sego

Eliminar usuarios conuserdel

Como su nombre lo indica, userdel elimina una cuenta del sistema, userdel puede ser invocado de
tres maneras:

#> userdel sergio

Sin opciones elimina la cuenta del usuario de/etc/passwdy de/etc/shadow, pero no elimina su
directorio de trabajo ni archivos contenidos en el mismo, esta es la mejor opción, ya que elimina la
cuenta pero no la información de la misma.
#> userdel -r sergio

Al igual que lo anterior elimina la cuenta totalmente, pero con la opción -r además elimina su
directorio de trabajo y archivos y directorios contenidos en el mismo, asi como su buzón de
correo, si es que estuvieran configuradas las opciones de correo. La cuenta no se podrá eliminar si
el usuario esta logueado o en el sistema al momento de ejecutar el comando.

#> userdel -f sergio

La opción -f es igual que la opción -r, elimina todo lo del usuario, cuenta, directorios y archivos del
usuario, pero además lo hace sin importar si el usuario esta actualmente en el sistema trabajando.
Es una opción muy radical, además de que podría causar inestabilidad en el sistema, asi que hay
que usarla solo en casos muy extremos.

Cambiar contraseñas conpasswd

Crear al usuario conuseraddes el primer paso, el segundo es asignarle una contraseña a ese
usuario. Esto se logra con el comandopasswdque permitirá ingresar la contraseña y su verificación:

#> passwd sergio

Changing password for user prueba.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

#>

El usuariorootes el único que puede indicar el cambio o asignación de contraseñas de cualquier


usuario. Usuarios normales pueden cambiar su contraeña en cualquier momento con tan solo
invocarpasswdsin argumentos, y podrá de esta manera cambiar la contraseña cuantas veces lo
requiera.

passwdtiene integrado validación de contraseñas comunes, cortas, de diccionario, etc. asi que si
por ejemplo intento como usuario normal cambiar mi contraseña a 'qwerty' el sistema me
mostrará lo siguiente:

$> passwd

Changing password for user prueba.

New UNIX password:

BAD PASSWORD: it is based on a dictionary word

Retype new UNIX password:

passwd: all authentication tokens updated successfully.


$>

Nótese que al ingresar 'qwerty' como contraseña se detectó que es una secuencia ya conocida
como contraseña y me manda la advertencia: "BAD PASSWORD: it is based on a dictionary word",
sin embargo me permite continuar, al ingresar la verificación. Es decir, passwd avisa de malas o
débiles contraseñas pero permite establecerlas si realmente se desea.

Resumiendo entonces, se podría decir que todo este tutorial se reduce a dos líneas de comandos
para crear y dejar listo para trabajar a un usuario en Linux:

#> useradd ana

#> passwd ana

Se crea el usuario 'ana',useraddhace todo el trabajo de establecer el shell, directorio de inicio,


copiar archivos iniciales de configuración de la cuenta, etc. y despuéspasswdestablece la
contraseña. Asi de simple.

passwdtiene varias opciones que permiten bloquear la cuenta '-l', desbloquearla '-u', y varias
opciones más que controlan la vigencia de la contraseña, es decir, es otro modo de establecer los
valores de la cuenta en/etc/shadow. Para más información consulta las páginas del manual:

$> man passwd

Archivos de configuración

Los usuarios normales yrooten sus directorios de inicio tienen varios archivos que comienzan con
"." es decir están ocultos. Varían mucho dependiendo de la distribución de Linux que se tenga,
pero seguramente se encontrarán los siguientes o similares:

#> ls -la

drwx------ 2 ana ana 4096 jul 9 09:54 .

drwxr-xr-x 7 root root 4096 jul 9 09:54 ..

-rw-r--r-- 1 ana ana 24 jul 9 09:54 .bash_logout

-rw-r--r-- 1 ana ana 191 jul 9 09:54 .bash_profile

-rw-r--r-- 1 ana ana 124 jul 9 09:54 .bashrc

.bash_profileaquí podremos indicar alias, variables, configuración del entorno, etc. que deseamos
iniciar al principio de la sesión.

.bash_logoutaquí podremos indicar acciones, programas, scripts, etc., que deseemos ejecutar al
salirnos de la sesión.

.bashrces igual que .bash_profile, se ejecuta al principio de la sesión, tradicionalmente en este


archivo se indican los programas o scripts a ejecutar, a diferencia de .bash_profile que configura el
entorno.
Lo anterior aplica para terminales de texto 100%.

Si deseamos configurar archivos de inicio o de salida de la sesión gráfica entonces, en este caso,
hay que buscar en el menú del ambiente gráfico algún programa gráfico que permita manipular
que programas se deben arrancar al iniciar la sesión en modo gráfico. En la mayoría de las
distribuciones existe un programa llamado "sesiones" o "sessions", generalmente esta ubicado
dentro del menú de preferencias. En este programa es posible establecer programas o scripts que
arranquen junto con el ambiente gráfico, sería equivalente a manipular 'bashrc'.

Además Linux permite que el usuario decida que tipo de entorno Xwindow a utilizar, ya sea algún
entorno de escritorio como KDE o Gnome o algún manejador de ventanas como Xfce o Twm.
Dentro del Home del usuario, se creará un directorio o archivo escondido "." , por ejemplo
'.gnome' o '.kde' donde vendrá la configuración personalizada del usuario para ese entorno.
Dentro de este directorio suele haber varios directorios y archivos de configuración. Estos son
sumamente variados dependiendo de la distribución y del entorno. No es recomendable modificar
manualmente (aunque es perfectamente posible) estos archivos, es mucho mas sencillo modificar
vía las interfases gráficas que permiten cambiar el fondo, protector de pantalla, estilos de
ventanas, tamaños de letras, etc.

Resumen de comandos y archivos de administración de usuarios

Existen varios comandos más que se usan muy poco en la administración de usuarios, que sin
embargo permiten administrar aun más a detalle a tus usuarios de Linux. Algunos de estos
comandos permiten hacer lo mismo que los comandos previamente vistos, solo que de otra
manera, y otros como 'chpasswd' y 'newusers' resultan muy útiles y prácticos cuando de dar de
alta a múltiples usuarios se trata.

A continuación te presento un resumen de los comandos y archivos vistos en este tutorial más
otros que un poco de investigación

Comandos de administración y control de usuarios

adduser Ver useradd

Permite cambiar o establecer parámetros de las fechas de control de la


chage
contraseña.

Actualiza o establece contraseñas en modo batch, múltiples usuarios a la vez.


chpasswd
(se usa junto con newusers)

id Muestra la identidad del usuario (UID) y los grupos a los que pertence.

gpasswd Administra las contraseñas de grupos (/etc/group y /etc/gshadow).

groupadd Añade grupos al sistema (/etc/group).

groupdel Elimina grupos del sistema.

groupmod Modifica grupos del sistema.


groups Muestra los grupos a los que pertence el usuario.

Actualiza o crea usuarios en modo batch, múltiples usuarios a la vez. (se usa
newusers
junto chpasswd)

pwconv Establece la protección shadow (/etc/shadow) al archivo /etc/passwd.

pwunconv Elimina la protección shadow (/etc/shadow) al archivo /etc/passwd.

useradd Añade usuarios al sistema (/etc/passwd).

userdel Elimina usuarios del sistema.

usermod Modifica usuarios.

Archivos de administración y control de usuarios

.bash_logout Se ejecuta cuando el usuario abandona la sesión.

.bash_profile Se ejecuta cuando el usuario inicia la sesión.

.bashrc Se ejecuta cuando el usuario inicia la sesión.

/etc/group Usuarios y sus grupos.

/etc/gshadow Contraseñas encriptadas de los grupos.

/etc/[Link] Variables que controlan los aspectos de la creación de usuarios.

/etc/passwd Usuarios del sistema.

/etc/shadow Contraseñas encriptadas y control de fechas de usuarios del sistema.

También podría gustarte