De los primeros pasos que debemos hacer después de instalar un distribución de Linux, es crear un usuario o modificar permisos a ese usuario, especialmente si necesitamos darle privilegios de administrador. Esto es un conocimiento básico y necesario para cualquiera interesado en Seguridad Informática
<h1>useradd vs adduser</h1>Veamos dos métodos para crear un usuario con privilegios root en Linux.
Uno utiliza el comando useradd y el otro adduser, pero ¿cuál es la diferencia?.
useradd es un comando que ejecuta un binario del sistema, mientras que adduser es un script en perl que utiliza el binario useradd.
Es decir, adduser > useradd.
adduser usa useradd, por lo que tiene más funcionalidades.
La mayor ventaja del comando adduser es que crea el directorio home (/home/usuario/) del usuario de manera automática, cosa que no hace useradd (hay que usar la opción -m).
adduser crea las carpetas de inicio de la cuenta y otras configuraciones (automáticamente carga las estadísticas del sistema y las notificaciones de inicio de sesión), mientras que useradd solo crea el usuario.
Conclusión 🥁
Siempre que puedas usa adduser (y deluser al eliminar usuarios) cuando esté creando nuevos usuarios desde la línea de comandos.
En realidad, los comandos useradd, userdel y usermod son utilidades de bajo nivel que están ahí por razones históricas, mientras que adduser/deluser es “hacer las cosas bien”.
⚠🤯 Si se te dificulta recordárlas, recuerda la “a” siempre es primero que la “u”. Y entonces ❌ la “u” es la mala ❌ :v
👉 🆗 adduser adduser aaadduser aaaaaadduser aaaaaaaadduser. 🆗✔
Ahora, veamos cómo serían los métodos para la creación de usuarios:
Añadir un usuario ya creado al grupo adminsudo useradd -u 0 -o -g 0 username
Establecer la nueva contraseña:sudo passwd username
🔴Advertencia: Este método no es conveniente usarlo, ya que no crea la carpeta home del usuario y puede tener inconvenientes con el historial bash en algunos VSP. Sólo si estás escribiendo una secuencia de comandos, especialmente si apunta a la portabilidad, es posible que desees utilizar las utilidades de bajo nivel, o cuando adduser/deluser no esté disponible, por ejemplo, en SuSE
Suele ser más largo, pero es más “correcto” como ya lo expliqué arriba.
Añadir usuario:
> sudo adduser username
> sudo /usr/sbin/visudo
Este comando abrirá un fichero, ahí añadiremos después de la línea donde pone ‘root’, el nombre de nuestro usuario, con las líneas de ALL iguales, donde “username” sería el nombre de usuario
# User privilege specificationrootALL=(ALL:ALL) ALLusernameALL=(ALL:ALL) ALL
Recuerda guardar los cambios realizados en el fichero y cierra después de eso. Desde ese momento ya tendremos nuestro usuario añadido al fichero sudoers.
Ahora veremos algo que es súper importante entender, ¿ser dios o semidios?
<h1>su vs sudo</h1>El usuario root (dios) en GNU/Linux es el usuario que tiene acceso administrativo a todooo el sistema. Los usuarios normales no tienen este acceso por razones de seguridad.
Uno de las cosas más habituales tras crear un usuario es concederle permisos de superusuario o sudo, de esta manera podrá ejecutar comandos de administrador.
Para ello la mejor solución es agregar el nuevo usuario al grupo sudo:sudo usermod -a -G sudo nombreusuario
Y de esta manera el nuevo nombreusuario podrá ejecutar comandos de administrador con sudo.
Pero, ¿cuál es la diferencia entre sudo y su?
El programa su permite usar el intérprete de comandos (terminal) de otro usuario sin necesidad de cerrar la sesión actual. Comúnmente se usa para obtener permisos de root para operaciones administrativas sin tener que salir y reentrar al sistema.
Vemos como se ve en la consola:
[[email protected]]$ su
Contraseña:
[[email protected]]# exit
logout
[[email protected]]$
Al NO poner un usuario en el comando $ su
, se accede como administrador (sin embargo, también es posible pasar como parámetro otro nombre de usuario $ su usuario
).
Una vez introducida la contraseña, podemos ejecutar los comandos como si fuésemos el otro usuario. Para salir únicamente escribimos # exit
, en la consola para volver a nuestro usuario.
Otra variante muy utilizada es usar su seguido de un guión (-):
$ su -
[para root]$ su - usuario
[para otro usuario]¿Cuál es la diferencia entre usar o no el guión?
Se recomienda usar el guión porque simula que te logueás con ese usuario; por consiguiente, ejecuta todos los archivos de inicio de ese usuario, cambia el directorio actual al HOME de ese usuario, cambia el valor de algunas variables del sistema adaptándolas al nuevo usuario (HOME, SHELL, TERM, USER, LOGNAME, entre otros), y otras cositas más.
sudo pide a los usuarios su propia contraseña en lugar de la del usuario requerido; esto permite la delegación de comandos a usuarios en otras máquinas sin tener que compartir contraseñas, reduciendo el riesgo de que cuando vayas al baño 🚽 alguien aproveche que dejaste la terminal e ingrese comandos indebidos 🕵️♂️. Así, ejecuta un comando como otro usuario, pero con algunas limitaciones (usualmente especificadas en el archivo /etc/sudoers).
Cuando ejecutas una aplicación que requiere privilegios de administrador, sudo le pedirá que escriba su contraseña de usuario normal. Esto asegura que aplicaciones incontroladas no puedan dañar su sistema, y sirve como recordatorio de que está a punto de realizar acciones administrativas que requieren que tenga cuidado ⚠.
Para usar sudo en la línea de comandos, simplemente escriba “sudo” antes del comando que desea ejecutar. Sudo le pedirá su contraseña:
$ sudo
[sudo] password for user:
La ventaja de sudo respecto de su es que sólo ejecuta el comando solicitado simulando ser el otro usuario, sin cambiar verdaderamente el usuario actual. Ello implica que uno puede ejecutar un comando como administrador y, al segundo siguiente, volverá a tener los privilegios del usuario que estaba usando antes… o casi.
Sudo recordará su contraseña durante un periodo de tiempo (predeterminado a 15 minutos). Esta característica se diseñó para permitir a los usuarios realizar múltiples tareas administrativas sin tener que escribir su contraseña cada vez.
Aunque algunos ven como una brecha de seguridad el hecho de que sudo otorgue un «período de gracia» que permita al usuario ejecutar comandos como otro usuario sin la necesidad de tener que ingresar una y otra vez sudo delante del comando y la contraseña luego de ejecutarlo. Pasado ese «período de gracia», sudo volverá a preguntarnos la clave.
Esto es “malo”, esencialmente porque alguien podría apoderarse de nuestra compu luego de haber ingresado la contraseña de sudo y mientras vamos al baño el «período de gracia» está activo, por lo que alguien malintencionado podría hacer un DESASTRE 💣💥.
Afortunadamente, es posible deshabilitar el «período de gracia», lo que va a mejorar la seguridad de tu sistema. Sólo hay que agregar una línea en el archivo /etc/sudoers:
$ sudo nano /etc/sudoers
Y agrega la siguiente línea al final del archivo:
Defaults:ALL timestamp_timeout=0
El cambio tiene efecto en forma inmediata, sin necesidad de reiniciar el sistema.
Y eso es todo 😄
esta información me parece muy interesante, pero creo no entenderla del todo bien siento que me faltan algunas bases para comprender lo aquí expuesto… ¿podrías recomendarme algún curso relacionado para entender mejor?
Hola buenas, puede buscar : Curso de Administración de Servidores Linux y en la clase 17 de ese curso ahi explican muy bien la creacion de usuarios, claro a un que no estaria mal tomar el curso. Suerte.