¿Por qué es necesario sudo bash?

¿Por qué es necesario sudo bash?

Estaba leyendo el siguiente código:

$ sudo bash
# cd /home/
# ./gitpull.sh

¿Por qué necesito la primera línea? ¿Qué hace exactamente? ¿Qué pasaría si simplemente lo hiciera $ sudoen lugar de $ sudo bash?

Respuesta1

Inicia un shell bash como rootusuario de nivel. Lo necesita porque normalmente los usuarios normales no pueden acceder/home/

El peligro de lo que está haciendo es que se encuentra en un shell raíz: puede estropear su máquina con bastante facilidad.

Respuesta2

Sería mucho mejor que hicieras:

$ sudo sh -c 'cd /home; ./gitpull.sh'

Porque los comandos invocados como root se registrarán. Invocar un shell directamente a través de sudo evita todos los beneficios de seguridad de sudo y debe evitarse.

Respuesta3

sudo <shell>, si funciona, delata una mala instalación de sudo y una posible debilidad de seguridad.

sudono debe configurarse para permitir comandos arbitrarios como shell; El propósito de sudoes permitir a los usuarios no root autenticados ejecutar ciertos comandos como root, sin conocer la contraseña de root.

Si sudo bashse le permite a cualquier usuario, ese usuario es root simplemente por conocer su propia contraseña.

Si un atacante obtiene la contraseña de cualquiera de las cuentas que pueden hacerlo sudo bash, el atacante tiene root.

La forma correcta de hacer el equivalente a sudo bash(obtener un shell raíz) es suy luego proporcionar la contraseña de raíz, no la suya.

Respuesta4

sudopermite a los usuarios ejecutar programas con los privilegios de seguridad de otro usuario (normalmente el superusuario o root).
bashinicia un nuevo shell bash.
Entonces, sudo bashinicia un nuevo shell bash con el privilegio de seguridad del usuario root.

información relacionada