¿Cómo configurar permissions para permitir que apache tenga acceso de forma segura a un file en un entorno compartido?

Esta es una pregunta de seguimiento de mi anterior, pero sentí que podría estar más basada en Linux.

https://serverfault.com/questions/414207/how-to-set-linux-permissions-to-allow-apache-to-have-access-to-a-file

En mi escuela tenemos un entorno de server compartido con varios usuarios y varios grupos.

Grupos Relavent:

students

daemon (ejecuta apache)

Quiero permitir que los estudiantes puedan tener acceso completo a los files que poseen y sin acceso a otros files de estudiantes. Dos estudiantes diferentes no deberían poder ver los files de los demás.

También quiero que apache pueda leer y ejecutar todos los files de los alumnos. Específicamente, quiero que apache pueda leer un file de passwords propiedad de cada alumno, también quiero que el propietario del file de passwords tenga acceso completo a él.

Según entiendo, la mejor manera de hacerlo es cambiar el propietario del file de passwords para que sea apache.

Entonces, después de leer esto,

https://serverfault.com/questions/357108/what-are-the-best-linux-permissions-to-use-for-my-website

parece que un simple chgrp lo arreglaría.

Pero luego me encuentro con esto:

Debe ser el propietario del file (s) así como un miembro del grupo de destino (o raíz) para usar esta operación.

Entonces, cada uno de los estudiantes no forma parte del grupo demonio, no pueden ejecutar este command. Darles ese grupo sería inútil ya que también podrían ver los files de passwords de otros estudiantes.

Del hilo anterior, pude deducir que la configuration de security actual no es apta y he progtwigdo una reunión con mi administrador de sistemas, tommarrow.

Pero todavía no estoy seguro de qué debería pedirle a mi systemadmin.

Realmente no puedo pedirle que cambie manualmente los permissions para cada file de passwords en el server, los nombres de los files y las ubicaciones son diferentes y muchos estudiantes ni siquiera están configurados.

Permitir que los estudiantes tengan acceso completo a chgrp parece peligroso,

Mi inclinación parece pedirle que cree algún tipo de script que solicite al alumno un file y luego ejecute chgrp en lugar del alumno, lo que le da la propiedad al grupo apache. Esto parece viable, pero también bastante complicado ya que todavía soy bastante nuevo en Linux. ¿Sería capaz de hacer algo como esto fácilmente?

También he considerado los de ACL, pero mi línea de pensamiento vuelve directamente a chgrp, dando a los estudiantes acceso a setacl parece peligroso.

ACL es la respuesta. Los estudiantes no necesitan ningún permiso especial para ejecutar setfacl , un usuario puede establecer la ACL de cualquier file que posea.

Si necesita configurar su sistema para ACL, consulte Hacer que todos los files nuevos en un directory sean accesibles para un grupo

Dígales a los estudiantes que si necesitan un file para que sea accesible para Apache, entonces deben ejecutar

 setfacl -m group:daemon:r ~/path/to/password.file setfacl -m group:daemon:x ~ ~/path ~/path/to 

El permiso x en los directorys es necesario para acceder a los files (incluidos los subdirectorys) en estos directorys.