Introducción a los comandos chgrp y newgrp de Linux
Los comandos chgrp y newgrp proporcionan ayuda adicional para administrar archivos que necesitan mantener la propiedad del grupo.
En este post veremos como ejemplos y definiciones, como usar los comandos chgrp y newgrp ya sea en un computador o servidor linux.
Usando chgrp
El comando chgrp simplemente cambia la propiedad del grupo de un archivo. Es lo mismo que el comando chown: <group> . Puedes usar:
$chown :alan mynotes
o:
$chgrp alan mynotes
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 un argumento recursivo, -R . Necesitará esto para operar en un directorio y su contenido de forma recursiva, como demostraré a continuación. He añadido el -v ( detallado argumento) por lo chgrp me dice lo que está haciendo:
$ ls -l . conf
:.
drwxrwxr-x 2 Alan Alan 4096 Aug 5 15 : 33 conf
conf:
-rw-rw-r-- 1 Alan Alan 0 Aug 5 15 : 33 conf.xml
# chgrp -vr conf delta
grupo cambió de 'conf / conf.xml ' de alan a delta
cambió el grupo de ' conf ' de alan a delta
Referencia
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. Puede duplicar el grupo de otro archivo ( RFILE ), denominado archivo de referencia. Por ejemplo, para deshacer los cambios realizados anteriormente (recuerde que un punto [ . ] Se refiere al directorio de trabajo actual):
$ chgrp -vR --reference=. conf
Informar cambios
La mayoría de los comandos tienen argumentos para controlar su salida. El más común es -v para habilitar detallado, y el comando chgrp tiene un modo detallado. También tiene un argumento -c ( --changes ), que le indica a chgrp que informe solo cuando se realiza un cambio. Chgrp aún informará otras cosas, como si no se permite una operación.
El argumento -f ( --silent , --quiet ) se usa para suprimir la mayoría de los mensajes de error. Usaré este argumento y -c en la siguiente sección para que solo muestre cambios reales.
Preservar la raíz
La raíz ( / ) del sistema de archivos de 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 está 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 chgrp recursivo en la raíz, no sucederá nada y en su lugar aparecerá un mensaje:
[ root @ localhost / ] # chgrp -cfR --preserve-root a + w /
chgrp: es peligroso operar recursivamente en '/'
chgrp: use --no-preserve-root para anular esta falla
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:
[ alan @ localhost / ] $ chgrp -c --preserve-root alan /
chgrp: cambio de grupo de '/' : Operación no permitida
[ root @ localhost / ] # chgrp -c --preserve-root alan /
cambio de grupo de ' / ' de raíz a alan
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:
[ alan @ localhost / ] $ chgrp -cfR alan /
cambió el grupo de '/ dev / pts / 0' de tty a alan
cambió el grupo de '/ dev / tty2' de tty a alan
cambió el grupo de '/ var / spool / mail / alan ' de mail a alan
Sobre el comando newgrp
El comando newgrp es usado para cambiar el ID de grupo actual durante una sesión de inicio de sesión. Si se proporciona el indicador opcional, el entorno del usuario se reinicializará como si el usuario hubiera iniciado sesión; de lo contrario, el entorno actual, incluido el directorio de trabajo actual, permanece sin cambios.
newgrp cambia el ID de grupo real actual al grupo con nombre, o al grupo predeterminado enumerado en /etc/passwd si no se proporciona un nombre de grupo. newgrp también intenta agregar el grupo al grupo de usuarios.
Si no es root, se le pedirá al usuario una contraseña si no tiene una contraseña (en /etc/shadow si este usuario tiene una entrada en el archivo de contraseñas sombreadas, o en /etc/passwd de lo contrario) y el grupo la tiene, o si el usuario no figura como miembro y el grupo tiene una contraseña. Al usuario se le negará el acceso si la contraseña del grupo está vacía y el usuario no figura como miembro.
Si hay una entrada para este grupo en /etc/gshadow, la lista de miembros y la contraseña de este grupo se tomarán de este archivo; de lo contrario, se considerará la entrada en /etc/group.
¿Qué permite hace el comando newgrp?
El comando newgrp permite a un usuario anular el grupo primario actual. newgrp puede ser útil cuando trabaja en un directorio donde todos los archivos deben tener la misma propiedad de grupo. Suponga que tiene un directorio llamado compartir en su servidor de intranet donde diferentes equipos almacenan fotos de marketing.
El grupo es compartir. 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, puede ejecutar chgrp para corregir cualquier confusión configurando el grupo para compartir :
$ cd share
ls -l
-rw-r - r--. 1 Alan cuota de 0 Aug 7 15 : 35 pic13
-rw-r - r--. 1 Alan Alan 0 Aug 7 15 : 35 pic1
-rw-r - r--. 1 Susan delta 0 Aug 7 15 : 35 pic2
-rw-r - r--. 1 James gamma 0 Aug 7 15 : 35 pic3
-rw-rw-r--. 1 contrato de factura 07 de agosto 15 : 36 pic4
Cubrí el modo setgid en mi artículo sobre el comando chmod . Esta sería una forma de resolver este problema. Pero, supongamos que el bit setgid no se estableció por alguna razón. El comando newgrp es útil en esta situación.
Antes de que los usuarios agreguen archivos en el directorio compartido, tiene la posibilidad de ejecutar el comando newgrp share. Al hacer esto, cambia su grupo primario para compartir, por lo que todos los archivos que colocan en el directorio tendrán inmediatamente el grupo compartido, en lugar del grupo primario del usuario. Una vez que hayan finalizado, los usuarios pueden volver a su grupo principal habitual con el siguiente comando (por ejemplo):
newgrp alan
Conclusiones
Es importante comprender cómo administrar usuarios, grupos y permisos de forma correcta en Linux. También es bueno conocer algunas formas alternativas de solucionar los problemas que pueda encontrar en el camino, ya que no todos los entornos están configurados de la misma manera.
Si quieres conocer otros artículos parecidos a Introducción a los comandos chgrp y newgrp de Linux puedes visitar la categoría Linux.
Entradas relacionadas