¿Cómo hago para que sudo solicite la contraseña de root?


25

Cuando corro sudocomo un usuario normal sin privilegios, me pide mi contraseña, no la contraseña de root. Eso a menudo es conveniente, pero reduce la cantidad de información que alguien tendría que tener para ejecutar comandos como root. Entonces, ¿cómo puedo sudopedir la contraseña de root en lugar de la contraseña del usuario que invoca?

Sé que se haría con una línea /etc/sudoers, pero parece que nunca puedo analizar correctamente la gramática de BNF en la página del manual para averiguar exactamente qué escribir.


Le recomiendo que restrinja los comandos permitidos como usuario no root para que no tenga que preocuparse por exponer comandos arbitrarios.
Slartibartfast

@slartibartfast: pero ¿qué sucede cuando necesito ejecutar un comando como root que no está en la lista preaprobada?
David Z

Respuestas:


25

Ok, aquí está de nuevo para que pueda establecer la marca de verificación.

En /etc/sudoers, agregue esta línea:

Defaults rootpw

para activar el indicador rootpw, haciendo que sudo solicite la contraseña de root.


77
Siempre debe usar el visudocomando en lugar de editar manualmente el /etc/sudoersarchivo. visudovalida el archivo para asegurarse de que sea correcto antes de guardar, para que no quede
Colin D Bennett

5

Necesitas encender la rootpwbandera.


Como dije, no he podido trabajar con la notación BNF en la página de manual, entonces, ¿en qué línea insertaré /etc/sudoerspara habilitar esta bandera?
David Z

2
Valores predeterminados rootpw
Florian Diesch

@Florian: sabes, es así de fácil :-) Si publicas eso como respuesta, obtienes la marca de verificación.
David Z

3

Sé que esta pregunta es antigua, pero es la pregunta más concisa que he encontrado para este caso de uso (que es un porcentaje menor, cierto, pero no obstante legítimo y útil en el escenario correcto).

Después de reunir todos los pasos de varias fuentes, incluidas las respuestas múltiples a esta pregunta, estos pasos funcionan en Ubuntu-Gnome 16.04 LTS:

  1. Establecer una contraseña para root
    • ¡Esto es CRÍTICO hacer PRIMERO ! (Ubuntu automáticamente no tiene contraseña para el usuario ROOT debido a la configuración de seguridad estándar.
    • Si no hace esto primero, no podrá acceder a los privilegios de root. Esto se puede superar iniciando con un Live Disk, montando el disco duro y editando el archivo sudoers, pero es mejor evitarlo.
    • Abra una terminal e ingrese: sudo passwd
    • Establezca su nueva contraseña para el usuario ROOT.
  2. Cambie la configuración de SUDO para requerir la contraseña de root
    • SUDO requiere que el usuario solicite privilegios de root
    • Al establecer el indicador "rootpw" en su lugar, le dice a SUDO que requiera la contraseña para el usuario root.
    • Abra una terminal e ingrese: sudo visudo
    • Esto abrirá el archivo "/ etc / sudoers"
    • Después de la otra línea de "Valores predeterminados", agregue: Defaults rootpw
    • Guárdelo (suponiendo que esté en nano, que es el valor predeterminado, esto es CTRL + O)
    • Cierre el archivo (CTRL + X) y salga del terminal
  3. Ya terminaste!

Solo una nota rápida: también quería asegurarme de que el usuario raíz no pudiera ser utilizado para iniciar sesión desde el inicio de sesión gráfico, y por eso estaba buscando formas de excluirlo. Aparentemente, el usuario root está excluido por defecto, y no se puede usar para iniciar sesión a través del inicio de sesión gráfico Gnome, ¡lo cual es algo muy bueno!


¿Podría sugerir mejoras para revertir un voto negativo?
SRDC

No parece estar equivocado.
Ruslan

1
Posiblemente debido a una configuración simple (y funcional) de: root ALL=(ALL) ALL Defaults targetpw ALL ALL=(ALL) ALL Permite sudo root para cada usuario que conoce la contraseña de root. Cambiar ingenuamente las dos últimas líneas a su solución Defaults rootpwprovoca un bloqueo de sudo. También debe agregar su usuario para que le sudoersguste: myusername ALL=(ALL) ALLo otorgar privilegios similares a un grupo y luego agregar myusernamea ese grupo.
Paul Parker

1

Una configuración común que requiere la contraseña del objetivo (no lo que queremos):

Defaults targetpw
ALL ALL=(ALL) ALL

La segunda línea se leería en voz alta como: "TODOS los usuarios en TODOS los hosts pueden hacerse pasar por (TODOS) usuarios cuando ejecutan TODOS los comandos". y los Defaults targetpwmedios para que necesiten saber la contraseña del usuario al que suplantan para hacerlo.

Cambiando ingenuamente esta configuración simple a:

Defaults rootpw

no dejaría a ningún usuario o grupo con el privilegio de ejecutar comandos como otro usuario.

Una posibilidad de trabajo sería:

Defaults rootpw
myuser ALL=(ALL) ALL

En inglés simple, myuserahora tiene la capacidad de ejecutar TODOS los comandos como cualquier usuario en TODOS los hosts, siempre que se conozca la contraseña de root.

Otra posibilidad de trabajo sería:

Defaults rootpw
%sudousers ALL=(ALL) ALL

Cualquier miembro del sudousersgrupo tendrá la capacidad de ejecutar TODOS los comandos como cualquier usuario en TODOS los hosts, siempre que se conozca la contraseña de root. Para permitir myuserejecutar comandos sudo, sudousersdebería agregarse a sus grupos secundarios.

su
usermod -a -G sudousers myuser
exit

Gran explicación Más detallado que el paso a paso que publiqué (que funcionó según los valores predeterminados de Ubuntu).
SRDC

0

Podrías apagar sudo y usar su -c.


Inconveniente porque tengo que ingresar mi contraseña cada vez que la ejecuto. El caso de uso aquí es tener que ejecutar múltiples comandos como root en una rápida sucesión.
David Z

-1

Utilizando

sudo su

le permitirá ejecutar tantos comandos como desee en sucesión.


2
Buena idea, pero a menos que cambie sudopara solicitar la contraseña de root, esto aún permitiría a alguien obtener acceso de root presentando solo una contraseña (no la de root). Por lo tanto, realmente no aborda la preocupación de seguridad que provocó mi pregunta.
David Z

En lugar de utilizar la capacidad de sudo para limitar el acceso del usuario, está exponiendo su contraseña de root a varios usuarios. También está eliminando la capacidad de proteger su servidor al eliminar la contraseña de la raíz.
BillThor
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.