Queremos que algunos usuarios puedan hacerlo, por ejemplo, sudo
y convertirse en root,
Bueno, ese es el problema que sudo está diseñado para resolver, por lo que esa parte es bastante fácil.
pero con la restricción de que el usuario no puede cambiar la contraseña de root.
Puede, como SHW señaló en un comentario, configurar sudo para que solo ciertos usuarios puedan tomar ciertas acciones como root. Es decir, puede permitir que el usuario1 haga sudo services apache2 restart
, permitir que el usuario2 haga sudo reboot
pero nada más, mientras permite que lo user3
haga el administrador contratado como sistema sudo -i
. Hay procedimientos disponibles sobre cómo configurar sudo de esa manera, o puede buscar (o preguntar) aquí. Ese es un problema solucionable.
Sin embargo, un usuario al que se le ha otorgado la capacidad de sudo -i
acceder sudo
a un shell ( sudo bash
por ejemplo) puede hacer cualquier cosa. Esto se debe a que cuando sudo lanza el shell, sudo ya no está en la imagen. Proporciona el contexto de seguridad de un usuario diferente (a menudo root), pero no tiene voz en lo que hace la aplicación ejecutada. Si esa aplicación a su vez se inicia, passwd root
no hay nada que sudo pueda hacer al respecto. Tenga en cuenta que esto también se puede hacer a través de otras aplicaciones; por ejemplo, muchos de los editores más avanzados proporcionan facilidades para ejecutar un comando a través del shell, un shell que se ejecutará con el uid efectivo de ese proceso del editor (es decir, root).
Es decir, una garantía de que todavía podemos iniciar sesión en ese servidor y convertirnos en root sin importar lo que hagan los otros usuarios.
Lo siento; si realmente quiere decir "asegurarse de que podremos iniciar sesión y usar el sistema sin importar lo que haga alguien con acceso de root", eso (a todos los efectos) no se puede hacer. Un rápido "sudo rm / etc / passwd" o "sudo chmod -x / bin / bash" (o lo que sea que use la raíz de shell) y de todos modos estás bastante regado. "Más o menos con manguera", que significa "necesitará restaurar desde la copia de seguridad y espero que no hayan hecho nada peor que un resbalón de dedos". Puede tomar algunas medidas para reducir el riesgo de un accidente accidental que conduzca a un sistema inutilizable, pero no puede evitar que la malicia cause problemas muy graves, incluido el punto de necesitar reconstruir el sistema desde cero o, al menos, de lo conocido buenas copias de seguridad
Al otorgar a un usuario acceso root sin restricciones en un sistema, confía en que ese usuario (incluido cualquier software que pueda elegir ejecutar, incluso algo tan mundano como ls) no tenga intenciones maliciosas y no se equivoque por accidente. Esa es la naturaleza del acceso raíz.
El acceso raíz limitado a través de, por ejemplo, sudo es un poco mejor, pero aún debe tener cuidado de no abrir ningún vector de ataque. Y con el acceso a la raíz, hay muchos posibles vectores de ataque para ataques de escalada de privilegios.
Si no puede confiar en ellos con el nivel de acceso que conlleva ser root, necesitará una configuración de sudo muy estricta o simplemente no otorgar al usuario en cuestión acceso root de ninguna manera, sudo o de otro modo.
sudo
para otorgar permiso solo para aplicaciones específicas con privilegios de raíz. De esa manera, el usuario no podrá cambiar la contraseña de root