3

馃攽 Entendiendo privilegios en Linux: sudo, su y creaci贸n de usuarios. Indispensable en Seguridad Inform谩tica. 馃捇

Fata毛
Fatae
2808

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 鈥渉acer las cosas bien鈥.

鈿狆煠 Si se te dificulta record谩rlas, recuerda la 鈥渁鈥 siempre es primero que la 鈥渦鈥. Y entonces 鉂 la 鈥渦鈥 es la mala 鉂 :v
馃憠 馃啑 adduser adduser aaadduser aaaaaadduser aaaaaaaadduser. 馃啑鉁

Ahora, veamos c贸mo ser铆an los m茅todos para la creaci贸n de usuarios:

M茅todo r谩pido (Usando el comando useradd)

A帽adir un usuario ya creado al grupo admin
sudo 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

M茅todo bonito (Usando el comando adduser)

Suele ser m谩s largo, pero es m谩s 鈥渃orrecto鈥 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 鈥榬oot鈥, el nombre de nuestro usuario, con las l铆neas de ALL iguales, donde 鈥渦sername鈥 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?

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

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 鈥渟udo鈥 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 鈥渕alo鈥, 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 馃槃

Escribe tu comentario
+ 2
1
6553Puntos

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?

1
8229Puntos
4 meses

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.