¿Cuál es más seguro? sudo dnf update O su -; actualización dnf

¿Cuál es más seguro? sudo dnf update O su -; actualización dnf

¿Es más seguro hacer:

  1. $ sudo dnf update[ingrese la contraseña del usuario]

o

  1. $ su - [enter root password]
    # dnf update
    
    

Siempre supuse que son exactamente lo mismo, porque sudo utiliza setuid-root, por lo que el proceso que se ejecuta como primer argumento de sudo se ejecuta con el ID efectivo de sudo, que es root.

Supongo que mi pregunta es:¿Sudo eventualmente deja caer su ID efectiva a la del usuario normal? Entonces, en ese caso, el número 1 anterior sería una apuesta más segura, porque si el programa que se ejecuta sudo está comprometido por un atacante, entonces existe la posibilidad de que el atacante no se esté ejecutando como root, porque el privilegio ya se ha eliminado.

Respuesta1

Este primer comando (probablemente) requerirá su contraseña correcta, se ejecutará dnf updatecomo root y luego saldrá:

$ sudo dnf update [enter user password]

Este segundo comando requerirá la contraseña de root y luego iniciará un shell de root. En ese shell ejecutas dnf update:

$ su - [enter root password]
# dnf update

Realmente no estás comparando cosas iguales. Podrías comparar estos dos comandos, los cuales inician un shell raíz en el que ejecutas (al menos) el comandodnf update

sudo -s
dnf update

su -
dnf update

O puede comparar estos dos comandos, los cuales inician una instancia con privilegios de root dnf updatey luego salen nuevamente al shell de la persona que llama.

sudo dnf update

su root -c 'dnf update'

Lo que creo que en realidad estás preguntando es si es mejor invocar un solo comando con privilegios de root o iniciar un shell con privilegios de root para ejecutar uno o más comandos.

  • Si la dnffuncionalidad o sus descargas se ven comprometidas de alguna manera, entonces no importa cómo se ejecute, el problema es que se ejecute en absoluto.
  • Si está hablando de comprometer su sistema, entonces todo se reduce a la seguridad de la contraseña del usuario ( sudo) versus la contraseña del root ( su)
  • Si está considerando si puede confiar en el usuario, entonces realmente no importa si obtiene un shell raíz en el que ejecuta múltiples comandos o un shell raíz para ejecutar un comando a la vez; el problema es que los comandos se pueden ejecutar como root

Personalmente, combino y combino mi uso según la necesidad. Rara vez lo uso su, pero sí lo uso sudo {command....}para sesiones puntuales rápidas o sudo -spara una sesión corta en la que necesito ejecutar varios comandos (por ejemplo, las herramientas de administración de paquetes de Debian, apt-get updateseguidas de apt-get upgrade).

Respuesta2

Sí, sudopierde privilegios cuando finaliza el proceso secundario. En este caso dnf. Donde suse pierden privilegios cuando finaliza el proceso secundario. En este caso un shell interactivo. Por lo tanto, el sudoejemplo elimina los privilegios antes.

sudoTambién tiene otras ventajas no cubiertas aquí. (por ejemplo, el sudoersarchivo se puede utilizar para dar más control sobre lo que cada usuario puede y no puede hacer).

información relacionada