Si chown puede cambiar de grupo, ¿por qué se creó chgrp?

Si chown puede cambiar de grupo, ¿por qué se creó chgrp?

Ahí está chownel que le permite cambiar el propietario y el grupo de archivos y/o directorios. Pero también está chgrpel que sólo cambia de grupo. ¿Por qué fue chgrpcreado? ¿No es redundante?

Respuesta1

chownInicialmente no se pudo configurar el grupo. Más tarde, algunas implementaciones lo agregaron como chown user.group, otras como chown user:grouphasta que finalmente fueestandarizado(el énfasis es mío):

El método BSD 4.3 para especificartanto propietario como grupose incluyó en este volumen de POSIX.1-2008 porque:

Hay casos en los que no se pudo lograr la condición final deseada utilizando las utilidades chgrp y chown (que solo cambiaron la ID del usuario). (Si el propietario actual no es miembro del grupo deseado y el propietario deseado no es miembro del grupo actual, la función chown() podría fallar a menos que tanto el propietario como el grupo se cambien al mismo tiempo).

Incluso si se pudieran cambiar de forma independiente, en los casos en los que se cambian ambos, existe una penalización de rendimiento del 100 % causada por verse obligado a invocar ambas utilidades.

Incluso ahora:

  • chown :groupCambiar solo el grupo no es portátil ni estándar.
  • chown user:Asignar el grupo principal de userla base de datos de usuarios tampoco es estándar.

Respuesta2

Se requieren privilegios de root al cambiar el usuario propietario* de un archivo.

Un usuario normal puede cambiar el propietario del grupo de un archivo a otro grupo del que sea miembro.

Quizás desde esta perspectiva de privilegios tuviera sentido mantenerlos separados, especialmente en la era anterior a Sudo. chownSe podría haber hecho algo así setuidcon un grupo de 'admin', permitiendo a los miembros del grupo 'admin' cambiar el usuario propietario de los archivos.

* Utilizo "usuario-propietario" y "grupo-propietario" y "otros" por coherencia con ugo. Confundir "o" con "propietario" es un error común.

información relacionada