¿Por qué la raíz está en la rueda y el operador? ¿Puede la raíz estar en un grupo alguna vez marcar la diferencia?

Acabo de notar en mi máquina FreeBSD que la raíz está en la rueda y en el operador. Estoy tratando de pensar en una situación en la que UID 0 estar en un grupo tenga algún efecto sobre … bueno … cualquier cosa, y me quedaré en blanco. Para el caso, ¿necesita root incluso un grupo de inicio de session principal en / etc / passwd? ¿O el inicio de session (3) se estrangula y muere si el usuario tiene un campo de grupo primario en blanco?

(Para aclarar: entiendo el propósito de la existencia del grupo "raíz", ya que los files necesitan un propietario de grupo. No entiendo cómo importa que el usuario root / toor / whatever tenga esa membresía de grupo).

¿Es esto simplemente un error de décadas atrás, o hay una razón real para ello?

Related of "¿Por qué la raíz está en la rueda y el operador? ¿Puede la raíz estar en un grupo alguna vez marcar la diferencia?"

En resumen: no. Tener root en la wheel y grupo de operator no cambia nada.

Pero también estás cuestionando otras 2 cosas:

  • El ID del grupo raíz está (de forma pnetworkingeterminada) en 0, que es lo más parecido a un valor vacío que puede get.

     $ head -4 /etc/passwd # $FreeBSD: releng/9.2/etc/master.passwd 243947 2012-12-06 11:52:31Z rwatson $ # root:*:0:0:Charlie &:/root:/bin/csh toor:*:0:0:Bourne-again Superuser:/root: 

    Como se dijo, cada usuario debe tener un grupo, por lo que no puede establecer el ID del grupo raíz (ni cualquier número de identificación del usuario) en un valor nulo o vacío. Si intenta establecer un usuario gid en blanco, se lo advertirá pwd_mkdb :

     pwd_mkdb: no gid for user root pwd_mkdb: at line #3 pwd_mkdb: /etc/pw.Rlb2U3: Inappropriate file type or format re-edit the password file? 

    Entonces, el hecho de que root esté definido se trata más bien de nombrarlo correctamente en lugar de simplemente un número tonto. Puede cambiar el valor de root gid a cualquier número sin sentido (gid no está dentro de /etc/group ). Su usuario raíz todavía podría iniciar session, su o cualquier otra cosa que pueda hacer la raíz . Acabas de tener algo así:

     $ id uid=0(root) gid=10000 groups=10000,5(operator) 
  • acerca de por qué algunos usuarios están en el grupo de rueda que es una historia totalmente diferente, como FreeBSD , como OpenBSD o NetBSD , los usuarios tienen que ser parte de la wheel para su raíz .

    De la documentation de FreeBSD ( capítulo 9.4 ):

    Para su raíz (o cualquier otra count con privilegios de superusuario), debe estar en el grupo de ruedas . Si esta característica no existiera, cualquier persona con una count en un sistema que también descubriera la contraseña de root podría get acceso de nivel de superusuario al sistema. Con esta característica, esto no es estrictamente cierto; su (1) les impedirá siquiera intentar ingresar la contraseña si no están en la rueda .

    Pero tienes razón, eliminar al usuario raíz de la rueda no cambiaría las cosas. Esto es puramente formal, tanto como el usuario toor no es parte de la rueda o la raíz es parte del grupo de operadores .

  • El grupo de operadores es, sin embargo, puramente formal, sin ningún significado especial en sí mismo.

Aquí también está lo que Richard Stallman piensa sobre el grupo wheel (del manual gnu su ):

¿Por qué GNU "su" no es compatible con el grupo `rueda '================================== ==========

(Esta sección es de Richard Stallman.)

Algunas veces, algunos de los usuarios intentan mantener el poder total sobre el rest. Por ejemplo, en 1984, algunos usuarios del laboratorio de IA de MIT decidieron tomar el poder cambiando la contraseña del operador en el sistema Twenex y manteniéndolo en secreto de todos los demás. (Pude frustrar este golpe y devolver el poder a los usuarios parcheando el kernel, pero no sabría cómo hacerlo en Unix).

Sin embargo, ocasionalmente los gobernantes le dicen a alguien. Bajo el mecanismo usual de "su", una vez que alguien aprende la contraseña de root que simpatiza con los usuarios normales, él o ella puede decir el rest. La function de "grupo de ruedas" lo haría imposible y, por lo tanto, consolidaría el poder de los gobernantes.

Estoy del lado de las masas, no de los gobernantes. Si estás acostumbrado a apoyar a los jefes y administradores de sistemas en lo que sea que hagan, es posible que esta idea te resulte extraña al principio.

inicio de session (3) y otros esperan grupo primario. Lo necesitan para que puedan establecer campos válidos en los files utmp / wtmp. E incluso si no lo hicieran (formatting de file modificado), se toparía con un problema más fundamental cuando login (1) o sshd (8) u otros progtwigs intenten configurar la session del usuario, independientemente de utmp / wtmp que necesiten llenar ambos Las properties del process del kernel de UID y GID (ya que los files creados por el usuario que inició session deben tener el UID y el GID rellenos, como puede ver).

En cuanto al problema por el cual la raíz todopoderosa necesita más que el grupo primario, no se aplica a las comprobaciones de permissions (ya que se omiten para el UID 0), pero lo hace para otros usos.

El grupo "rueda" especialmente se usa para varias comprobaciones de authentication adicionales, como por ejemplo pam_wheel

Otros grupos como "operador" pueden usarse para funciones de security (por ejemplo, algunos processs ejecutados por root pueden setuid (2) para USER sin privilegios (como "nobody"), mientras que aún conserva sus miembros de GROUP (como "operator"). Permitiría que dicho process continúe accediendo a los files propiedad de ese grupo, a la vez que networkingucirá significativamente los problemas de security de la ejecución con acceso total a UID 0.

No estoy seguro de si hay progtwigs que hacen uso de esta function en su sistema (o si es FreeBSD CURRENT por defecto)