Los comandos chgrp y newgrp nos ayudan a administrar archivos que necesitan mantener la propiedad del grupo.

En una entrada reciente, os hablé del comando chown, que se usa para modificar la propiedad de los archivos en los sistemas. Recuerda que la propiedad es la combinación del usuario y el grupo asignado a un objeto. Los comandos chgrp y newgrp proporcionan ayuda adicional para administrar archivos que necesitan mantener la propiedad del grupo.



Usando chgrp

El comando chgrp simplemente cambia la propiedad del grupo de un archivo. Es lo mismo que el comando “chown: grupo”. Podemos usar:

1 2 3 chown :david misnotas #O bien chgrp david misnotas chown :david misnotas #O bien chgrp david misnotas

Modo recursivo

Algunos argumentos adicionales para chgrp pueden ser útiles tanto en la línea de comandos como en un script. Al igual que muchos otros comandos de Linux, chgrp tiene el parámetro recursivo con “-R“. Los vamos a necesitar esto para operar en un directorio y su contenido de forma recursiva, como veremos a continuación. También podemos agregar el argumento “-v” (detallado) para que el comando nos diga qué está haciendo:

1 2 3 4 5 6 7 8 9 10 servdebian10- 1 : # ls -l misnotas total 0 -rw-r--r-- 1 david david 0 oct 8 19 : 19 misnotas1 -rw-r--r-- 1 david david 0 oct 8 19 : 19 misnotas2 -rw-r--r-- 1 david david 0 oct 8 19 : 19 misnotas3 servdebian10- 1 : # sudo chgrp -vR arnau misnotas cambiado el grupo de 'misnotas/misnotas3' de david a arnau cambiado el grupo de 'misnotas/misnotas1' de david a arnau cambiado el grupo de 'misnotas/misnotas2' de david a arnau cambiado el grupo de 'misnotas' de david a arna servdebian10-1:# ls -l misnotas total 0 -rw-r--r-- 1 david david 0 oct 8 19:19 misnotas1 -rw-r--r-- 1 david david 0 oct 8 19:19 misnotas2 -rw-r--r-- 1 david david 0 oct 8 19:19 misnotas3 servdebian10-1:# sudo chgrp -vR arnau misnotas cambiado el grupo de 'misnotas/misnotas3' de david a arnau cambiado el grupo de 'misnotas/misnotas1' de david a arnau cambiado el grupo de 'misnotas/misnotas2' de david a arnau cambiado el grupo de 'misnotas' de david a arna

Reference

Se puede usar un archivo de referencia (–reference = RFILE) al cambiar el grupo en los archivos para que coincida con una determinada configuración o cuando no conoce el grupo, como podría ser el caso al ejecutar un script. Podemos duplicar el grupo de otro archivo (RFILE), denominado archivo de referencia. Por ejemplo, para deshacer los cambios realizados anteriormente (recuerda que un punto [.] Se refiere al directorio de trabajo actual):

1 chgrp -vR --reference =. misnotas chgrp -vR --reference=. misnotas

Preservar la raíz

La raíz (/) del sistema de archivos de GNU/Linux debe tratarse con gran respeto. Si se comete un error de comando a este nivel, las consecuencias pueden ser terribles y dejar un sistema completamente inútil. Particularmente cuando estamos ejecutando un comando recursivo que hará cualquier tipo de cambio, o peor aún, eliminaciones. El comando chgrp tiene un argumento que puede usarse para proteger y preservar la raíz. El argumento es “–preserve-root“. Si este argumento se usa con un comando recursivo en la raíz, no sucederá nada y en su lugar aparecerá un mensaje:

1 2 3 root@servdebian10-1:~# chgrp -cfR --preserve-root david / chgrp: es peligroso operar recursivamente sobre '/' chgrp: utilice --no-preserve-root para saltarse esta medida de seguridad root@servdebian10-1:~# chgrp -cfR --preserve-root david / chgrp: es peligroso operar recursivamente sobre '/' chgrp: utilice --no-preserve-root para saltarse esta medida de seguridad

La opción no tiene efecto cuando no se usa junto con recursivo. Sin embargo, si el usuario raíz ejecuta el comando, los permisos de / cambiarán, pero no los de otros archivos o directorios dentro de él.

Sorprendentemente, parece, este no es el argumento predeterminado. La opción “–no-preserve-root” es la predeterminada. Si ejecuta el comando anterior sin la opción “preservar”, el modo predeterminado será “no preservar” y posiblemente cambie los permisos en los archivos que no deberían modificarse.

Sobre newgrp

El comando newgrp permite a un usuario anular el grupo primario actual. Puede ser útil cuando trabajamos en un directorio donde todos los archivos deben tener la misma propiedad de grupo. Supongamos que tenemos un directorio llamado compartir en su servidor de intranet donde diferentes equipos almacenan fotos de marketing. El grupo es “share”. A medida que diferentes usuarios colocan archivos en el directorio, los grupos principales de los archivos pueden confundirse. Cada vez que se agregan nuevos archivos, podemos ejecutar chgrp para corregir cualquier confusión configurando el grupo para compartir.

Esto cambia su grupo primario para compartir, por lo que todos los archivos que colocan en el directorio tendrán automáticamente el grupo compartido, en lugar del grupo primario del usuario. Una vez que hayan terminado, los usuarios pueden volver a su grupo principal habitual con (por ejemplo):

1 newgrp arnau newgrp arnau

Conclusión

Es importante comprender cómo administrar usuarios, grupos y permisos. También es bueno conocer algunas formas alternativas de solucionar los problemas que podemos encontrar, ya que no todos los entornos están configurados de la misma manera.

Fuentes consultadas

Opensource.com – Introduction to the Linux chgrp and newgrp commands