Si conozco el ID de un grupo, cuyo privilegio es más alto que el mío, ¿puedo ejecutar programas con ese ID de grupo? Si es así, ¿cómo lo hago? Si no, ¿por qué no?
Apreciará todas las respuestas.
No si el sistema ha sido diseñado correctamente. Por ejemplo, los grupos de Linux tienen ID que son secuenciales, por lo que puede haber grupos con ID de 500 a 510. Sin embargo, eso no significa que solo pueda ser miembro de uno de esos grupos. Si pudiera, también podría hacerlo cualquier persona que adivine las identificaciones de otros grupos, lo que haría que la seguridad del sistema no valga la pena.
Es posible que un error en la implementación del sistema resulte en que los usuarios puedan unirse a grupos arbitrarios, pero se espera que cualquier error de este tipo se solucione rápidamente, así que si bien no es imposible como concepto, en la práctica no debería ocurrir .
El kernel de Linux tiene protecciones de seguridad en torno a las llamadas a setgid (2) que impiden Usted acaba de asumir otro grupo porque sabe que es GID:
setgid () establece el ID de grupo efectivo del proceso de llamada. Si el autor de la llamada tiene privilegios (tiene la capacidad CAP_SETGID), también se configuran el GID real y el ID de grupo de juego guardado.
Si bien existen circunstancias especiales relacionadas con la configuración de setgid en un ejecutable , generalmente solo la raíz tiene acceso a este permiso.
Hay comandos como su (1) que te permiten convertirte en otro usuario (y grupo si el usuario está en un grupo diferente al del usuario actual). Estos comandos se ejecutan como root y tienen comprobaciones de seguridad (normalmente requieren la contraseña del usuario de destino) para asegurarse de que tiene permiso para iniciar sesión como ese usuario.
Si la seguridad de setgid se basara en conocer el GID, sería un ejemplo de seguridad por oscuridad , un pozo -conocido anti-patrón de seguridad.
Lea otras preguntas en las etiquetas operating-systems linux