No tengo conocimiento de ningún sistema incorporado diseñado para el concepto de dos personas a nivel de sistema operativo. Si bien se puede escribir una nueva versión de sudo / PAM para lograr esto, me parece que se aplica mejor en el nivel de la aplicación que en el nivel del sistema operativo, personalizado en la aplicación para sus propósitos específicos. Los datos se pueden cifrar con varias claves (que pertenecen a diferentes usuarios) para garantizar que los usuarios de root
no puedan omitir fácilmente los controles.
¿Qué imaginas: dos personas sentadas en el mismo escritorio donde el usuario A se autentica y luego el usuario B se autentica y luego se ejecuta el comando sudo? ¿O el usuario A escribe sudo emacs /etc/ssh/sshd_config
, se envía un mensaje al usuario B que tiene que usar sus datos de autenticación para que el usuario A pueda editar el archivo antes de editarlo?
Y nuevamente con el flujo de trabajo estándar, obtienes permiso para abrir tu editor de texto como superusuario antes de abrir el archivo o crear cambios. Así que posiblemente podrías obtener el permiso del usuario B para hacer sudo emacs /etc/ssh/sshd_config
pero una vez que emacs (como superusuario) esté abierto, puedes comenzar a editar cualquier número de otros archivos (abre y edita /etc/shadow
, reemplazando un hash de otro administrador que continuó vacaciones) o incluso abrir un shell de superusuario desde emacs (sin ningún reprompido de credenciales o registro adicional de uso de sudo en el /var/log/auth.log
bajo la configuración estándar).
Algo relacionado, es posible configurar la autenticación de dos factores para ssh con un yubikey o google . Por lo tanto, podría configurar un escenario en el que requiera la autenticación de dos factores para iniciar sesión, requerir que ambas personas estén presentes mientras los usuarios inician sesión (por ejemplo, ambos pueden activarse si se nota algo malicioso en los registros) con cada miembro teniendo solo uno de los factores para iniciar sesión.