[495c311] | 1 | #!/bin/bash |
---|
| 2 | # checkperms: Comprueba que los permisos de los ficheros sean correctos. |
---|
| 3 | # Nota: Las siguientes variables de entorno pueden usarse para retocar los |
---|
| 4 | # valores por defecto: |
---|
| 5 | # - OPENGNSYS_USER - usuario de OpenGnSys. |
---|
| 6 | # - OPENGNSYS_DIR - directorio de instalación. |
---|
| 7 | # - APACHE_USER - usuario de Apache. |
---|
| 8 | # - APACHE_GROUP - grupo de Apache. |
---|
| 9 | # Uso: checkperms |
---|
| 10 | # variable1=valor1 ... checkperms |
---|
| 11 | # Autor: Ramon Gomez - Univ. Sevilla, noviembre 2010 |
---|
| 12 | # Fecha: 2012/07/13 |
---|
| 13 | |
---|
| 14 | |
---|
| 15 | # Variables. |
---|
| 16 | OPENGNSYS_USER=${OPENGNSYS_USER:-"opengnsys"} # Usuario del cliente para acceso remoto |
---|
| 17 | OPENGNSYS_DIR=${OPENGNSYS_DIR:-/opt/opengnsys} # Directorio de instalación de OpenGnSys |
---|
| 18 | APACHE_USER=${APACHE_USER:-"www-data"} # Usuario de ejecución de Apache |
---|
| 19 | APACHE_GROUP=${APACHE_GROUP:-"www-data"} # Grupo de ejecución de Apache |
---|
| 20 | PROG=$(basename $0) |
---|
| 21 | |
---|
| 22 | # Control de errores. |
---|
| 23 | if [ "$USER" != "root" ]; then |
---|
| 24 | echo "$PROG: Error: solo ejecutable por root" >&2 |
---|
| 25 | exit 1 |
---|
| 26 | fi |
---|
| 27 | if [ "$OPENGNSYS_USER" == "root" -o -z "$(getent passwd "$OPENGNSYS_USER" 2>/dev/null)" ]; then |
---|
| 28 | echo "$PROG: Error: el usuario de OpenGnSys debe existir y no ser root (OPENGNSYS_USER=\"$OPENGNSYS_USER\")" >&2 |
---|
| 29 | exit 1 |
---|
| 30 | fi |
---|
| 31 | if [ ! -d "$OPENGNSYS_DIR" ]; then |
---|
| 32 | echo "$PROG: Error: sin acceso al directorio de OpenGnSys (OPENGNSYS_DIR=\"$OPENGNSYS_DIR\")". >&2 |
---|
| 33 | exit 1 |
---|
| 34 | fi |
---|
| 35 | if [ -z "$(getent passwd "$APACHE_USER" 2>/dev/null)" -o -z "$(getent group "$APACHE_GROUP" 2>/dev/null)" ]; then |
---|
| 36 | echo "$PROG: Error: no se detectan el usuario o el grupo de Apache (APACHE_USER=\"$APACHE_USER\", APACHE_GROUP=\"$APACHE_GROUP\")" >&2 |
---|
| 37 | exit 1 |
---|
| 38 | fi |
---|
| 39 | |
---|
[6f4d39b] | 40 | chown -R :$OPENGNSYS_USER $OPENGNSYS_DIR/{log/clients,images/group} |
---|
| 41 | find $OPENGNSYS_DIR/log/clients -type f -exec chmod 664 {} \; |
---|
| 42 | find $OPENGNSYS_DIR/images -maxdepth 1 -exec chown :$OPENGNSYS_USER {} \; |
---|
| 43 | find $OPENGNSYS_DIR/images -maxdepth 1 -type d -exec chmod 775 {} \; |
---|
| 44 | find $OPENGNSYS_DIR/images -maxdepth 1 -type f -exec chmod 664 {} \; |
---|
[495c311] | 45 | find $OPENGNSYS_DIR/client/{interfaceAdm,scripts} ! -name "*.txt" -exec chmod +x {} \; |
---|
| 46 | chown $OPENGNSYS_USER:$OPENGNSYS_USER $OPENGNSYS_DIR/client/interfaceAdm/CambiarAcceso |
---|
| 47 | chmod 700 $OPENGNSYS_DIR/client/interfaceAdm/CambiarAcceso |
---|
[baea6c3] | 48 | chown root:root $OPENGNSYS_DIR/etc/{ogAdmServer,ogAdmAgent}*.cfg |
---|
| 49 | chmod 600 $OPENGNSYS_DIR/etc/{ogAdmServer,ogAdmAgent}*.cfg |
---|
| 50 | chown root:$APACHE_GROUP $OPENGNSYS_DIR/{www/controlacceso*.php,etc/ogAdmRepo*.cfg} |
---|
| 51 | chmod 640 $OPENGNSYS_DIR/{www/controlacceso*.php,etc/ogAdmRepo*.cfg} |
---|
[495c311] | 52 | chown -R $APACHE_USER:$APACHE_GROUP $OPENGNSYS_DIR/www/images/{fotos,iconos} |
---|
| 53 | chown -R $APACHE_USER:$APACHE_GROUP $OPENGNSYS_DIR/www/api |
---|
[663cd905] | 54 | chown -R $APACHE_USER:$APACHE_GROUP $OPENGNSYS_DIR/www/tmp # ??? |
---|
[82762c6] | 55 | chown -R $APACHE_USER:$APACHE_GROUP $OPENGNSYS_DIR/tftpboot/menu.lst |
---|
[495c311] | 56 | chown -R :$OPENGNSYS_USER $OPENGNSYS_DIR/tftpboot/ogclient |
---|
| 57 | find -L $OPENGNSYS_DIR/tftpboot -type d -exec chmod 755 {} \; |
---|
| 58 | find -L $OPENGNSYS_DIR/tftpboot -type f -exec chmod 644 {} \; |
---|
[663cd905] | 59 | chown $APACHE_USER:$APACHE_GROUP $OPENGNSYS_DIR/log/ogagent.log |
---|
[495c311] | 60 | |
---|