Problemas con sudo: el período de gracia
link=https://blog.desdelinux.net/cual-es-la-diferencia-entre-sudo-y-su/
link=https://www.zeppelinux.es/diferencias-entre-su-y-sudo/
El programa su permite usar el intérprete de comandos de otro usuario sin nece-
sidad 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 siste-
ma.
Algunos entornos de escritorio, entre ellos GNOME y KDE, tienen programas que
piden gráficamente una contraseña antes de permitir al usuario ejecutar un co-
mando que usualmente requeriría tal acceso.
El nombre su proviene del inglés substitute user (usuario substituto). También
hay quien lo hace derivar de superuser (super-usuario, es decir, el usuario
root o administrador) ya que habitualmente se utiliza para adoptar el rol de
administrador del sistema.
Cuando se ejecuta, su pide la contraseña de la cuenta a la se quiere acceder,
y si es aceptada, da acceso a dicha cuenta.
[fulano@localhost]$ su
Contraseña:
[root@localhost]# exit
logout
[fulano@localhost]$
Al no poner un usuario, se accede como administrador. Sin embargo, también es
posible pasar como parámetro otro nombre de usuario.
[fulano@localhost]$ su mongo
Contraseña:
[mongo@localhost]# exit
logout
[fulano@localhost]$
Una vez introducida la contraseña, podemos ejecutar los comandos como si
fuésemos el otro usuario. Al escribir exit, volvemos a nuestro usuario.
Una variante muy utilizada es usar su seguido de un guión. Así, para loguearte
como root, tenés que ingresar su – y para loguearte como otro usuario su –
otrousuario. ¿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.
Un administrador de sistemas debe tener mucho cuidado al elegir una contraseña
para la cuenta de root/administrador, para evitar un ataque por parte de un
usuario no privilegiado que ejecute su. Algunos sistemas de tipo Unix tienen
un grupo de usuarios llamado wheel, que comprende a los únicos que pueden
ejecutar su. Esto podría o no reducir los problemas de seguridad, ya que un
intruso podría simplemente apoderarse de una de esas cuentas. El su de GNU,
sin embargo, no admite el uso de ese grupo; esto se hizo por razones filosófi-
cas.
Un comando relacionado, llamado sudo, ejecuta un comando como otro usuario, pe-
ro respetando una serie de restricciones sobre qué usuarios pueden ejecutar
qué comandos en nombre de qué otros usuarios (usualmente especificadas en el
archivo /etc/sudoers).
Por otro lado, a diferencia de su, sudo pide a los usuarios su propia contra-
seña en lugar de la del usuario requerido; esto permite la delegación de coman-
dos a usuarios en otras máquinas sin tener que compartir contraseñas, reducien-
do el riesgo de dejar terminales desatendidas.
La ventaja de sudo respecto de su es que sólo ejecuta el comando solicitado si-
mulando ser el otro usuario, sin cambiar verdaderamente el usuario actual. Ello
implica que uno puede ejecutar un comando como administrador y, al segundo si-
guiente, volverá a tener los privilegios del usuario que estaba usando antes o
casi.
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 vol-
verá 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 el «período de gracia»
está activo 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 agregá 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 siste-
ma.
El contenido del artículo se adhiere a nuestros principios de ética editorial.
Para notificar un error pincha aquí.