Creamos los grupos
#addgroup grupo1
#addgroup grupo2
y añadimos en el fichero /etc/group a alumno1, alumno2 como usuarios pertenecientes al grupo1 (lo mismo haremos con los alumnos 3 y 4 para el grupo 2)3.27.
grupo1:x:1006:alumno1,alumno2
Podemos comprobar cómo va el proyecto ejecutando:
$id usuario
y/o
$groups usuario
Después crearemos el directorio /home/grupo1:
#mkdir /home/grupo1
#chgrp grupo1 /home/grupo1
#chown profesor /home/grupo1
Nos interesa que el directorio (lo mismo para el grupo2) tenga los permisos
drwxrwx-- 2 profesor grupo1 4096 oct 9 22:43 grupo1
Con esto, el profesor podrá acceder al directorio del grupo, ya que es el propietario, y los alumnos, por el hecho de pertenecer al grupo (grupo1) podrán r (ver el contenido del directorio), x (meterse en el directorio) y w (escribir en el directorio, que equivale a poder crear ficheros dentro del directorio).
Pero los permisos por defecto son:
drwxr-xr-x
Para cambiarlos y conseguir el efecto deseado, ejecutaremos la orden:
#chmod 770 /home/grupo1
El resto de alumnos que no pertenecen al grupo1, no podrán hacer nada (ni por supuesto copiar la práctica). Con sólo esto, si el alumno1 hace
$cd /home/grupo1
y crea el fichero practica_grupo1, éste se crearía con los permisos:
-rw-rw-r- 1 alumno1 alumno1 2 oct 9 22:42 practica_grupo1
y el resto de los alumnos del grupo, podrían ver la práctica, pero no modificarla.
Para solucionar esto, hacemos
#chmod g+s /home/grupo1
quedando el directorio
drwxrws-- 2 profesor grupo1 4096 oct 9 22:43 grupo1
El bit s en directorios hace que el fichero que se cree dentro de él, posea como grupo al mismo grupo al que pertenece el directorio. Así, el grupo del fichero se mantendrá como grupo1 y el resto de alumnos que pertenecen al grupo, podrán modificar (trabajar sobre) la práctica, aunque el propietario haya sido el alumno que lo ha creado.
-rw-rw-r- 1 alumno1 grupo1 2 oct 9 22:43 practica_grupo1